• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:複数テーブルの条件毎での同一項目のSELECT方法)

複数テーブルの条件毎での同一項目のSELECT方法

このQ&Aのポイント
  • 複数テーブルの条件毎での同一項目のSELECT方法についてご教示お願いします。
  • テーブルAとテーブルBにはAコードでキーになる項目があります。
  • テーブルBのAコードが入力された場合、存在するならテーブルAから情報を取得し、存在しないならテーブルBから情報を取得したいです。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.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コード]);

boooone
質問者

お礼

ご回答有難うございました。 IIf(IsNull([テーブルA].[Aコード]),[テーブルB].[Bコード],[テーブルA].[Aコード]) を CASE WHEN テーブルA.Aコード IS NULL THEN テーブルB.Bコード ELSE テーブルA.Aコード END に置き換えることでできました。バッチリです。 非常に勉強になりました。ありがとうございました。