• 締切済み

ACCESSでキーが変わった時の結合

環境 Windows 10 Access 2013 2つのテーブルにある数値を比べて増減を算出するクエリを作成しています。共通であるNo.でA LEFT JOIN Bして「クエリ結果」を出すと当然ながらNo.4は結合されません。しかし調査すると、テーブルBにあるNo.0が過去にNo.4だったことがわかり、テーブルAのNo.4と比較する必要がでてきました。 テーブルAもそうですが、テーブルBのNo.を変更することなく(フィールド、テーブル追加は可)「出したいクエリ結果」を作成することは可能でしょうか。Excelを使用するのは不可とさせていただきます。 説明を簡略化するためにキーは一つ(No.)とさせていただきましたが、実際は4つになります。 SQL文を提示していただければと思います。 ご教授よろしくお願いいたします。 テーブルA No._数値 1_350 2_200 3_430 4_250 5_600 テーブルB No._数値 1_100 2_150 3_350 0_180 5_500 クエリ結果 A.No._A.数値_B.数値_AーB 1_350_100_250 2_200_150_50 3_430_350_80 4_250__ 5_600_500_100 出したいクエリ結果 A.No_A.数値_B.数値_AーB 1_350_100_250 2_200_150_50 3_430_350_80 4_250_180_70 5_600_500_100

みんなの回答

  • chayamati
  • ベストアンサー率41% (260/624)
回答No.3

回答№2の添付に不備がありましたので差替えさせていただきます

Uyrjyyf6sd
質問者

お礼

回答ありがとうございます。 参考になりました。 各テーブルに結合用のフィールドを設けることで結合することにしました。

  • chayamati
  • ベストアンサー率41% (260/624)
回答No.2

Accessでは空白項目を含むと計算されません従ってフィールドの初期値余計なことは考えずに初期値を0に定義しておきます。 次で如何でしょうか SELECT [テーブルA].[№], [テーブルA].数値, [テーブルB].数値, [テーブルA].[数値]-[テーブルB].[数値] AS [A-B] FROM テーブルA INNER JOIN テーブルB ON [テーブルA].[№] = [テーブルB].[№]; クエリを添付しておきます。

この投稿のマルチメディアは削除されているためご覧いただけません。
Uyrjyyf6sd
質問者

お礼

回答ありがとうございます。 参考になりました。 各テーブルに結合用のフィールドを設けることで結合することにしました。

  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.1

クエリのSQLビューの結果ですが、以下で試してみてください。 SELECT [テーブルA].[No], [テーブルA].[数値], [テーブルB].数値, [テーブルA]![数値]-[テーブルB]![数値] AS AーB FROM テーブルA, テーブルB WHERE ((([テーブルB].[No])=IIf([テーブルA]![No]=4,0,[テーブルA]![No])));

Uyrjyyf6sd
質問者

お礼

回答ありがとうございます。 参考になりました。 各テーブルに結合用のフィールドを設けることで結合することにしました。

関連するQ&A