SQL文の作成方法が分からず困っています。
以下の実現はどのように行えばよろしいでしょうか?
---------------------
テーブルA:(項目)キー番号、項目No
テーブルB:(項目)キー番号、項目No1、項目No1名称、
項目No2、項目No2名称、項目No3、項目No3名称
---------------------
とします。
ここで、テーブルA、Bでキー番号が一致し、
テーブルAの項目Noで、テーブルBの項目No1~3のどれかと
一致した場合、項目名称をテーブルBより取ってきたいです。
出力する時、項目No、項目名称は1個のみ出力したいです。
項目No1~3にない場合も名称空白でそのまま出力します。
(データ例)
テーブルA:
100,1
100,4
110,5
テーブルB:
100,1,項目名1,2,項目名2,3,項目名3
110,3,項目名3,4,項目名4,5,項目名5
結果:
100,1,項目名1
100,4,(空白)
110,5,項目名5
No.1ベストアンサー
- 回答日時:
項目No1~3それぞれについてキー番号内でユニークになるように登録されているならば、
以下の方法でいいでしょう。
SELECT
a.キー番号,
a.項目No,
CASE 項目No
WHEN b.項目No1 THEN b.項目No1名称
WHEN b.項目No2 THEN b.項目No2名称
WHEN b.項目No3 THEN b.項目No3名称 END
FROM テーブルA a
LEFT OUTER JOIN テーブルB b
ON a.キー番号=b.キー番号 AND a.項目No IN (b.項目No1,b.項目No2,b.項目No3)
上記を満たさないならば、別の方法が必要です。
SELECT
a.キー番号,
a.項目No,
b.項目名称
FROM テーブルA a
LEFT OUTER JOIN
(SELECT キー番号,項目No1 項目No,項目No1名称 項目名称 FROM テーブルB
UNION
SELECT キー番号,項目No2 項目No,項目No2名称 項目名称 FROM テーブルB
UNION
SELECT キー番号,項目No3 項目No,項目No3名称 項目名称 FROM テーブルB) b
ON a.キー番号=b.キー番号 AND a.項目No=b.項目No
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) access フォーム 大分類、小分類 1 2022/08/11 18:03
- Oracle SQL update方法 2 2022/06/22 14:07
- Visual Basic(VBA) VBAで、1つのエクセルで、2つのシートからもう1つのシートに条件のある転記コードを教えてください。 1 2023/03/16 18:07
- SQL Server [SQLServer] テーブル名からカラム名を取得する 1 2022/08/23 21:20
- Oracle sqlで質問です。 Aテーブルの登録番号をキーにBテーブルから確認番号を取得したいのですが、Bテーブ 4 2023/05/18 13:08
- Excel(エクセル) VBAで、シート間の転記するコードを教えてください。 4 2023/03/26 10:43
- Ruby pandasでsqlite3にテーブル作成・追加・読み出しでindexの取り扱い方教えてください 5 2023/03/08 09:57
- 会計ソフト・業務用ソフト エクセルの表 2 2022/09/17 11:08
- 確定申告 医療費控除の書き方について 4 2023/02/10 16:00
- システム CSVファイルのマッピング処理の省力化 1 2022/11/24 00:01
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
【SQL】他テーブルに含まれる値に合致する行を抽出
その他(データベース)
-
exeファイルの中身を見ることは可能ですか?
フリーソフト
-
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
-
4
GROUP BYを行った後に結合したい。
Oracle
-
5
System.IO.Directory.GetFilesの順番
Visual Basic(VBA)
-
6
TextBox1とTextBox2の数値の大小の比較について
Excel(エクセル)
-
7
select句副問い合わせ 値の個数が多すぎます
Oracle
-
8
MERGE文を単体テーブルに対して行いたい
Oracle
-
9
SQL Left Join で重複を排除するには
SQL Server
-
10
SQLServerで文字列の末尾からある位置で取出
SQL Server
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel 2019 のピボットテーブル...
-
エクセルVBAで5行目からオート...
-
Oracle 2つのDate型の値の差を...
-
Access テキスト型に対する指定...
-
エクセルグラフの凡例スペース
-
access2000:フォームで入力し...
-
セルの右クリックで出る項目を...
-
Excelで空白以外の値がある列の...
-
BIOSでAHCIに設定したいが、項...
-
複数のレコードを1つのレコード...
-
SUBSTRING 関数に渡した長さの...
-
空白をそのままインポートする...
-
ORACLEでLONG項目からCHAR項目...
-
2行目を表示できますか?
-
Accessで数値型にNULLをInsert...
-
SQLのSELECT文で*を使わない理由
-
SQLでの変数の扱いについて
-
APN設定について教えていただけ...
-
DBのタイプの指定とサイズにつ...
-
ピボットテーブルについて 列フ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel 2019 のピボットテーブル...
-
エクセルVBAで5行目からオート...
-
Oracle 2つのDate型の値の差を...
-
セルの右クリックで出る項目を...
-
Access テキスト型に対する指定...
-
SUBSTRING 関数に渡した長さの...
-
Accessで数値型にNULLをInsert...
-
APN設定について教えていただけ...
-
エクセルグラフの凡例スペース
-
ORACLEでLONG項目からCHAR項目...
-
複数のレコードを1つのレコード...
-
空白をそのままインポートする...
-
アンドロイド おサイフケータイ...
-
access2000:フォームで入力し...
-
VBAで複数の数式セルを最終行ま...
-
株に関する用語集
-
必須入力項目と入力必須項目
-
他テーブルで一致する列から名...
-
BIOSでAHCIに設定したいが、項...
-
datファイルからaccessにインポ...
おすすめ情報