- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:複数テーブルの条件毎での同一項目のSELECT方法)
複数テーブルの条件毎での同一項目のSELECT方法
このQ&Aのポイント
- 複数テーブルの条件毎での同一項目のSELECT方法についてご教示お願いします。
- テーブルAとテーブルBにはAコードでキーになる項目があります。
- テーブルBのAコードが入力された場合、存在するならテーブルAから情報を取得し、存在しないならテーブルBから情報を取得したいです。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
Access2003のクエリでよければ。 SELECT IIf(IsNull([テーブルA].[Aコード]),[テーブルB].[Bコード],[テーブルA].[Aコード]) AS コード, IIf(IsNull([テーブルA].[Aコード]),[テーブルB].[名称],[テーブルA].[名称]) AS 名称, IIf(IsNull([テーブルA].[Aコード]),[テーブルB].[住所],[テーブルA].[住所]) AS 住所 FROM テーブルA RIGHT JOIN テーブルB ON テーブルA.Aコード = テーブルB.Aコード GROUP BY IIf(IsNull([テーブルA].[Aコード]),[テーブルB].[Bコード],[テーブルA].[Aコード]), IIf(IsNull([テーブルA].[Aコード]),[テーブルB].[名称],[テーブルA].[名称]), IIf(IsNull([テーブルA].[Aコード]),[テーブルB].[住所],[テーブルA].[住所]) ORDER BY IIf(IsNull([テーブルA].[Aコード]),[テーブルB].[Bコード],[テーブルA].[Aコード]);
お礼
ご回答有難うございました。 IIf(IsNull([テーブルA].[Aコード]),[テーブルB].[Bコード],[テーブルA].[Aコード]) を CASE WHEN テーブルA.Aコード IS NULL THEN テーブルB.Bコード ELSE テーブルA.Aコード END に置き換えることでできました。バッチリです。 非常に勉強になりました。ありがとうございました。