- ベストアンサー
Access 2つのテーブルで数量の比較をしたい
Access2007を使用しています。 2つのテーブルに品番と数量がそれぞれ登録されています。 【テーブルA】 品番 / 数量 あ001/ 4 い001/ 5 あ001/ 1 【テーブルB】 品番 / 数量 う000/ 10 あ001/ 1 い001/ 4 い001/ 1 この2つのテーブルから、品番ごとの数量を比較して、異なるデータの品番と差異を取り出したいのです。 【結果】 あ001/ 4(←A-B=4) う000/ 10 A,Bのテーブルで品番ごとに集計した結果から、数量が不一致のものを取り出す方法がわかりません。 どうぞよろしくお願いいたします。
- taiyou55
- お礼率60% (9/15)
- その他(データベース)
- 回答数2
- ありがとう数4
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
■01.AとB用の集計クエリをそれぞれ作成 作成理由:同じテーブルに同品番が存在している事から先に集計クエリを用意する ※テーブルAで言えば「あ001」が重複/テーブルBで言えば「い001」が重複 集計クエリー:品番(グループ)/数量(合計)で、AとB用を作成 (A-SumQuery,B-SumQueryとでもしておく) ■02.上記集計クエリーに対し、品番一致クエリと品番不一致クエリのSQL文を構想しておく ※クエリ自体は未作成(SQL文を把握するのに一時的に作成し確認) 02.01.品番一致するものでAB値の計算を行い計算値が0の物は除外するSQL文を構想する <例SQL文> SELECT [A-SumQuery].A品番, [A数量の合計]-[B数量の合計] AS 小計 FROM [A-SumQuery] INNER JOIN [B-SumQuery] ON [A-SumQuery].A品番 = [B-SumQuery].B品番 WHERE ((([A数量の合計]-[B数量の合計])<>0)) 02.02.テーブルAから見たテーブルBに存在しない品番不一致SQL文を構想する <例SQL文> SELECT [A-SumQuery].A品番, [A-SumQuery].A数量の合計 FROM [A-SumQuery] LEFT JOIN [B-SumQuery] ON [A-SumQuery].A品番 = [B-SumQuery].B品番 WHERE ((([B-SumQuery].B品番) Is Null)); 02.03.テーブルBから見たテーブルAに存在しない品番不一致SQL文を構想する <例SQL文> SELECT [B-SumQuery].B品番, [B-SumQuery].B数量の合計 FROM [B-SumQuery] LEFT JOIN [A-SumQuery] ON [B-SumQuery].B品番 = [A-SumQuery].A品番 WHERE ((([A-SumQuery].A品番) Is Null)); ■03.02で構想したSQL文をユニオンクエリで一元化する 品番一致クエリ(02.01)と、品番不一致A(02.02)と、品番不一致B(02.03)の3種のクエリを、ユニオンで纏め上げる <例SQL> SELECT [A-SumQuery].A品番 AS 品番, [A数量の合計]-[B数量の合計] AS 数量 FROM [A-SumQuery] INNER JOIN [B-SumQuery] ON [A-SumQuery].A品番 = [B-SumQuery].B品番 WHERE ((([A数量の合計]-[B数量の合計])>0)) UNION SELECT [A-SumQuery].A品番, [A-SumQuery].A数量の合計 FROM [A-SumQuery] LEFT JOIN [B-SumQuery] ON [A-SumQuery].A品番 = [B-SumQuery].B品番 WHERE ((([B-SumQuery].B品番) Is Null)) UNION SELECT [B-SumQuery].B品番, [B-SumQuery].B数量の合計 FROM [B-SumQuery] LEFT JOIN [A-SumQuery] ON [B-SumQuery].B品番 = [A-SumQuery].A品番 WHERE ((([A-SumQuery].A品番) Is Null)); ■まとめ それぞれの役割を持ったクエリ(SQL文)を作成し、ユニオンクエリとして纏め上げて利用する
その他の回答 (1)
- kurodai2
- ベストアンサー率38% (77/202)
>A,Bのテーブルで品番ごとに集計した結果から、数量が不一致のものを取り出す方法がわかりません。 この質問と、お望みの結果は異なりますよね? >あ001/ 4(←A-B=4) >う000/ 10 集計結果を取り出すのではく 集計した差分を取り出そうとしていますね。 A-B=4 とされているので であれば、う000は A-B=-10ではないでしょうか? あ001/ 4 う000/ -10 差を取るのであれば、どちらか基準側が必要ですので A-Bで差が0以外を抽出すると SQLビュー SELECT 品番, 差分 from ( SELECT 品番, Sum(数量) AS 差分 FROM (SELECT テーブルA.品番, テーブルA.数量 FROM テーブルA union all SELECT テーブルB.品番, テーブルB.数量 * -1 FROM テーブルB) GROUP BY 品番 ) where 差分 <> 0 order by 品番 2007での結果 品番 差分 あ001 4 う000 -10 結果をこちらで読み替えました 意味が違っていたら、読み捨ててください。 また、SQlビューに貼り付けて実行できるように 1SQLで書きましたが 個別にクエリーにされても 問題ありません。
お礼
>であれば、う000は A-B=-10ではないでしょうか? お恥ずかしいです。そのとおりです。間違えていました。 そしてうまくいきました!大変助かりました。ありがとうございました。
関連するQ&A
- Access2つのテーブルの差額を出すピボット
Access2007を使用しています。 以下のような2つのテーブルがあります。 <テーブルA> 区分 品番 金額 数量 A 001 10000 10 A S12 5000 5 A 002 8000 8 A 001 6000 6 <テーブルB> 区分 品番 金額 数量 B 001 2000 2 B S12 3000 3 このデータを元に、以下のような結果をピボットで表示したいと思っています。 区分 A | B |合計 品番 数量 金額|数量 金額 |数量 金額 差額(A-B) 001 16 16000| 2 2000 | 18 18000 14000 002 8 8000 | | 8 8000 8000 S12 5 5000 | 3 3000 | 8 8000 2000 テーブルAとBをユニオンクエリでまとめ、ピボットを作って みたのですが、差額の部分が出せず・・・ どうぞよろしくお願いします。
- ベストアンサー
- その他(データベース)
- Accessクエリーで両方のテーブルの全てのデータを表示することは可能ですか?
Accessの本来の主旨にあってないと思うのですが・・・。 とあるデータの入ったテーブルをA:1月分・B:2月分と分けて作成して おります。 この2つのテーブルをクエリーでひとつのデータにまとめたいと思い、 品番をキーにクエリーを作成しましたが、結合の種類ではA・B両方一致した データか、AのすべてのデータとBの一致したデータというように片方を 主にしたデータしか表示することができません。 AにはあるがBにはない、AにはないがBにはあるといった具合に、 一致したデータはもちろんのこと、一致しないデータも片方だけではなく 両方のテーブルのデータを表示することは可能でしょうか? そもそも、同じ構造のテーブルならひとつにまとめてクロス集計クエリーで 品番別に月単位で表示するようにしたらよいのでしょうか? できればテーブルはひとつにまとめたくないのですが・・・。 Accessの構造をあまり知らなくてごめんなさい。 よい解決策があったら教えてください。
- ベストアンサー
- オフィス系ソフト
- 2つのACCESSファイルのテーブルを比較する方法
ACCESSデータベースファイル1.accdbの各テーブル(データ)と ACCESSデータベースファイル2.accdbの各テーブル(データ)は 完全に一致するはずですが、 両者の各テーブル(複数あり)が一致するかどうかを簡単に 確認するにはどうすればよいでしょうか。 なお、テーブルの生成方法の違いか何かの理由で 両者のファイルサイズは一致していません。 また、バイナリ比較でも一致していません。 ACCESSの機能で確認できるのであればACCESSを使用した方法で、 ACCESSの機能だけでは難しければACCESSのVBAを利用した方法で、 それでも難しければ他のツールや方法でも構いません。 よろしくお願いします。
- ベストアンサー
- Access(アクセス)
- アクセスで消し込みがしたい
アクセス初心者です。 二つのテーブルがあります。 テーブル1 品番 得意先 数量 チェック 111 A 1 111 A 1 111 A 2 111 B 1 222 A 1 テーブル2 品番 得意先 数量 チェック 111 A 1 111 A 1 111 A 1 111 A 1 111 A 1 222 A 1 この二つのテーブルを比較して品番、得意先、数量の同じものに チェックボックスをTrueにしたいのです。つまり テーブル1 品番 得意先 数量 チェック 111 A 1 レ 111 A 1 レ 111 A 2 111 B 1 222 A 1 レ テーブル2 品番 得意先 数量 チェック 111 A 1 レ 111 A 1 レ 111 A 1 111 A 1 111 A 1 222 A 1 レ の状態にしたいのです。更新クエリーを使って見ましたが テーブル1は希望通りですがテーブル2は全てにチェックが ついてしまいました。当たり前ですね。(^_^;) VBAは使ったことがないです。よろしくお願いします。
- ベストアンサー
- その他(データベース)
- ACCESSにて2つのテーブルの比較
2つのテーブルA,テーブルBがあります。テーブルBのデータ以外のデータを選ぶにはどうのようにすれば良いのでしょうか? テーブルA data--- aaaa bbbb cccc dddd aaaa cccc テーブルB data--- aaaa bbbb 欲しい結果 テーブルA data--- cccc dddd cccc よろしくお願い致します。
- ベストアンサー
- オフィス系ソフト
- クロス集計クエリの結果をテーブルにしたい
こんにちは。ACCESS 97、ほぼ初心者です。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=1445032 こちら様の質問の、便乗質問です(質問者様とは関係ありません)。 品番,倉庫,数量 4944,F,190 4960,A,25 4960,B,6 4960,C,72 4960,D,20 4960,E,50 4960,F,3 4962,C,26 4962,E,4 4963,C,5 4964,A,4 4964,C,148 4964,E,42 4965,A,2 4965,C,5 4965,E,1 4966,C,4 4966,E,1 こんなデータからテーブルを作成し、クロス集計クエリで 品番 A B C D E F 4944 190 4960 25 6 72 20 50 3 4962 26 4 4963 5 4964 4 148 42 4965 2 5 1 4966 4 1 という結果を出し、上の質問の方法でテーブル作成すると、元データと同じテーブルが作成されます。 A、B、C、D、E、Fを列見出しにしたテーブルを作成したいのですが、教えてください。
- ベストアンサー
- オフィス系ソフト
- エクセルのピボットテーブルで
ピボットテーブルの表示方法についてです。 表の品名と数量からピボットテーブルを作成します。 行に品名、データ部に数量を表示させるのですが、数量が0(ゼロ)の場合には、その行自体を表示させない様にしたいのです。 元の表の方は変更等出来ないので、ピボットテーブルの方で何とか出来ないかと思います。 【元の表】 品番 数量 A001 5,000 A002 0 B001 4,500 B002 0 上記の2列からピボットテーブルを作成すます。 【ピボットテーブル】 品番 数量 A001 5,000 B001 4,500 総計 9,500 上記の様に、元の表で数量が0なら、その品番と数量の行が表示されない様にです。
- 締切済み
- その他MS Office製品
- 複数列の数量を集計したい
こんばんは。 EXCELの集計の式についてお聞きします。 品番 日付 数量 伝票No. 数量 伝票No. 数量 伝票No. A 7/23 20 111 A 7/24 20 222 A 7/24 5 111 A 7/25 5 111 A 7/26 10 222 A 7/27 5 222 と数量が3列あります。 このデータを 品番、伝票No.(3列分まとめて)で数量を集計したいのです。 但し2列目の数量だけは引きます(数量合計=1列目-2列目+3列目) 品番 伝票No. 数量 A 111 10 A 222 25 と集計したいのですが。 EXCELの式だけでこのような事はできますか? 分かる方おられましたら、 どうぞ宜しくお願いします。
- ベストアンサー
- Excel(エクセル)
- アクセスのクエリについて(前当期比較させたい)
現在、アクセス2010を勉強中の超初心者です。 アクセスを用いて、前期と当期の商品売上数量比較表(得意先ごとの)を作成できないか考えております。 ■さっそくですが、以下の4つのテーブルがあったと仮定します。 テーブル(1)(商品マスター) テーブル(2)(得意先マスター) 品コード | 品名 店コード | 店名 1 | ○○ A | あか 2 | ×× B | いき 3 | △△ C | うす テーブル(3)(前期売上データ) テーブル(4)(当期売上データ) 店コード | 品コード | 売上数量 店コード | 品コード | 売上数量 A | 1 | 10 A | 3 | 20 A | 3 | 15 A | 4 | 25 B | 1 | 17 B | 2 | 27 : | : | : : | : | : ■以下のようなデータ抽出できないかを検討しています。 店コード | 品コード | 前期売上数量 | 当期売上数量 A | 1 | 10 | 0 A | 3 | 15 | 20 A | 4 | 0 | 25 ◆自身で検討してみましたが、「前期に売上実績があるが、当期に売上実績がないケース」、及び「その逆のケース」についてうまく抽出できません。(上記例で言いますと、A店に対する売上で品コード1 と 品コード3 の商品売上数量比較ができませんでした。) 解決方法わかる方、ご教授のほどよろしくお願い致します。
- 締切済み
- その他(データベース)
- CGI perlで 型番-数量のまとめかた
品番1-数量<>品番2-数量<>品番3-数量 品番2-数量<>品番1-数量 品番4-数量<>品番1-数量<>品番2-数量<>品番5-数量 上記の構成のCSVデータがあり、品番ごとの集計をとりたいのですが 良い方法があれば教えてください。
- 締切済み
- CGI
お礼
細かく教えていただき大変助かりました。 おかげさまでうまく出来ました。ありがとうございました。