- 締切済み
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
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- chayamati
- ベストアンサー率41% (260/624)
- chayamati
- ベストアンサー率41% (260/624)
Accessでは空白項目を含むと計算されません従ってフィールドの初期値余計なことは考えずに初期値を0に定義しておきます。 次で如何でしょうか SELECT [テーブルA].[№], [テーブルA].数値, [テーブルB].数値, [テーブルA].[数値]-[テーブルB].[数値] AS [A-B] FROM テーブルA INNER JOIN テーブルB ON [テーブルA].[№] = [テーブルB].[№]; クエリを添付しておきます。
お礼
回答ありがとうございます。 参考になりました。 各テーブルに結合用のフィールドを設けることで結合することにしました。
- kkkkkm
- ベストアンサー率66% (1734/2604)
クエリのSQLビューの結果ですが、以下で試してみてください。 SELECT [テーブルA].[No], [テーブルA].[数値], [テーブルB].数値, [テーブルA]![数値]-[テーブルB]![数値] AS AーB FROM テーブルA, テーブルB WHERE ((([テーブルB].[No])=IIf([テーブルA]![No]=4,0,[テーブルA]![No])));
お礼
回答ありがとうございます。 参考になりました。 各テーブルに結合用のフィールドを設けることで結合することにしました。
お礼
回答ありがとうございます。 参考になりました。 各テーブルに結合用のフィールドを設けることで結合することにしました。