
Access に異なるテーブルに収められているデータの「引き算」ほ方法をお教えください。
只今作成しているシステムは、簡単な在庫管理システムです。
今後、拡張していくこともあり得るという前提で各テーブルを作成しました。
作成したテーブルは以下のとおりです。
仕入先テーブル「仕入先ID・仕入先名・フリガナ・〒・住所1・住所2・TEL・FAX」
材料テーブル「材料ID・材料名」(単価はその時々で変わってくるのであえてここでは設定していません)
仕入テーブル「仕入ID・日付・仕入先ID・材料ID・仕入数量・単価」
払出テーブル「払出ID・日付・材料ID・払出数量」
在庫確認クエリにて以下の設定を行いました。
材料テーブルより「材料ID・材料名」
仕入テーブルより「仕入数量」
払出テーブルより「払出数量」
を設定し演算にて「在庫: Sum(Nz([仕入数量],0)-Nz([払出数量],0))」を入力しました。
データシートビューにて確認したところ、お互い発生した回数分だけ足されてしまい正確な在庫数量が表示されません。
例
====================
9/1 仕入数量 100
9/2 払出数量 50
9/3 仕入数量 100
9/4 払出数量 50
9/5 仕入数量 100
====================
とした場合に、仕入数量600 払出数量300 となってしまいます。
以下は「SQLレビュー」の内容です。
SELECT 材料.材料ID, 材料.材料名, Sum(仕入.仕入数量) AS 仕入数量の合計, Sum(払出.払出数量) AS 払出数量の合計, Sum(Nz([仕入数量],0)-Nz([払出数量],0)) AS 在庫
FROM (材料 INNER JOIN 仕入 ON 材料.材料ID = 仕入.材料ID) INNER JOIN 払出 ON 材料.材料ID = 払出.材料ID
GROUP BY 材料.材料ID, 材料.材料名;
解決方法をご享受くださいますようよろしくお願いいたします。
No.3ベストアンサー
- 回答日時:
1段目で集計はできているのですから2段目のクエリでは単に引き算をするだけです
在庫クエリ
SELECT
材料.材料ID,
材料.材料名,
仕入合計.仕入数量の合計,
払出合計.払出数量の合計,
[仕入数量の合計]-[払出数量の合計] AS 在庫
FROM 仕入合計 INNER JOIN 払出合計 ON 仕入合計.材料ID = 払出合計.材料ID
ありがとうございます。
ただ、単純に引き算をするだけだったのですね・・・ お手数をおかけいたしました。
SELECT 材料.材料ID, 材料.材料名, 仕入合計.仕入数量の合計, 払出合計.払出数量の合計, [仕入数量の合計]-[払出数量の合計] AS 在庫
FROM (材料 INNER JOIN 仕入合計 ON 材料.材料ID = 仕入合計.材料ID) INNER JOIN 払出合計 ON 材料.材料ID = 払出合計.材料ID;
ばっちり、表示されました。
あとは、月締め、年締めの作業です。
お忙しい中本当にありがとうございました。
No.2
- 回答日時:
仕入と払い出しを材料IDだけで結合したのではそうなりますね
仕入の集計、払い出しの集計を別個に行ってから
その集計クエリ同士を材料IDで結合したクエリを作ります
お忙しい中ありがとうございます。
仕入、払出をそれぞれ合計値を求め、合計値から在庫数を求めるクエリを作成してみましたが・・・ うまくいきませんでした。
まったくもって、理解度がなく大変申し訳ございません。
仕入合計
SELECT 仕入.材料ID, 材料.材料名, Sum(仕入.仕入数量) AS 仕入数量の合計
FROM 材料 INNER JOIN 仕入 ON 材料.材料ID = 仕入.材料ID
GROUP BY 仕入.材料ID, 材料.材料名;
払出合計
SELECT 払出.材料ID, 材料.材料名, Sum(払出.払出数量) AS 払出数量の合計
FROM 材料 INNER JOIN 払出 ON 材料.材料ID=払出.材料ID
GROUP BY 払出.材料ID, 材料.材料名;
在庫クエリ
SELECT 材料.材料ID, 材料.材料名, 仕入合計.仕入数量の合計, 払出合計.払出数量の合計, Sum([仕入数量の合計]-[払出数量の合計]) AS 在庫
FROM 払出合計, 仕入合計 INNER JOIN 材料 ON 仕入合計.材料ID = 材料.材料ID
GROUP BY 材料.材料ID, 材料.材料名, 仕入合計.仕入数量の合計, 払出合計.払出数量の合計;
結果
仕入300 払出50 在庫750
仕入300 払出100 在庫200
と、2段の結果になります。
ただし、以前のクエリとは違い、2段目は正しい結果となりました。
No.1
- 回答日時:
SELECT 材料ID, 材料名, (SELECT Sum(仕入.仕入数量) FROM 仕入 WHERE 仕入.材料ID=材料.材料ID) AS 仕入数量計, (SELECT Sum(払出.払出数量) FROM 払出 WHERE 払出.材料ID=材料.材料ID) AS 払出数量計, Nz([仕入数量計],0)-Nz([払出数量計],0) AS 在庫
FROM 材料;
みたいに、サブクエリで逃げるか?DSum関数で回避するか?かな?・・・
原因は、集計のチェックを外せば判ると思うけど、「仕入れ」3パターン×「払出し」2パターンの計6パターンが、すべて出てくる、それを足し算すると・・・結果、重複した加算がされると言う話
ですので、集計した結果を「材料」テーブルの材料IDに連結すれば問題は無いはずだけど・・・サブクエリをFrom句に作るように変わるだけなので、結果的には、変わらないかな?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(データベース) pythonでsqlight勉強中、クエリー結果の利用法教えて下さい 1 2022/04/28 20:38
- その他(データベース) accessでの請求管理について 2 2022/06/13 21:51
- ダイエット・食事制限 調味料のカロリー 1 2022/05/25 09:02
- 財務・会計・経理 1、製造指図書…の製造のため、材料A50000円を出庫し、外出先の工場に加工を依頼した。 なお当工場 4 2022/06/18 10:46
- 簿記検定・漢字検定・秘書検定 まだ、勉強し始めの個人解釈ですが。材料副費についてです。費用は発生すると借方、消費すると貸方です。材 1 2023/03/26 23:48
- その他(データベース) accessについて 2 2022/05/31 16:58
- クラフト・工作 数珠球を使用してお手玉を作る際に必要な材料 1 2022/12/12 17:16
- 経営情報システム accessでの請求管理について 12 2022/06/11 16:20
- 簿記検定・漢字検定・秘書検定 工業簿記 簿記二級 材料の追加投入についてです。 月初仕掛品100個(90%)、当月投入900個、完 1 2022/11/17 14:34
- 建設業・製造業 土木の材料表の計算が分かりません。 1m³当たり、フィルター層6cm使う場合、数量358㎡だと幾つに 2 2022/06/27 10:44
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
今、見られている記事はコレ!
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
-
なぜ批判コメントをするの?その心理と向き合い方をカウンセラーにきいた!
今や生活に必要不可欠となったインターネット。手軽に情報を得られるだけでなく、ネットを介したコミュニケーションも一般的となった。それと同時に顕在化しているのが、他者に対する辛らつな意見だ。ネットニュース...
-
大麻の使用罪がなかった理由や法改正での変更点、他国との違いを弁護士が解説
ドイツで2024年4月に大麻が合法化され、その2ヶ月後にサッカーEURO2024が行われた。その際、ドイツ警察は大会運営における治安維持の一つの方針として「アルコールを飲んでいるグループと、大麻を吸っているグループ...
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Accessのクロス集計→テーブル作...
-
クエリのデータをテーブルに入...
-
クロス集計クエリの結果をテー...
-
アクセスのクエリとDlookupはど...
-
テンポラリファイルのための空...
-
Accessでテーブルやクエリのリ...
-
ACCESS テーブル作成の日付付与...
-
アクセス 項目毎にデータを横...
-
Accessでのテーブル、クエリ名...
-
Accessのクエリで、抽出条件で…...
-
アクセスのクエリでSplit関数は...
-
ACCESS2000 クエリをテーブル化...
-
お世話になります ACCESSを使用...
-
フォーム上でデータをあるテー...
-
ExcelVBAでACCESSのクエリに接...
-
VBA 別シートの同じ日付の欄に...
-
アクセスのエラー「クエリには...
-
ACCESSの時間帯の抽出について
-
日付型のフィールドに空白を入...
-
Acccessで2つのテーブルから1...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
クロス集計クエリの結果をテー...
-
デザインビューにてテーブルが...
-
accessでクエリの結果だけをリ...
-
アクセスのクエリでSplit関数は...
-
Access「レコードが削除されま...
-
アクセス 項目毎にデータを横...
-
クエリのデータをテーブルに入...
-
アクセス:クエリの結合とリレ...
-
教えてください! アクセスのac...
-
access テーブル作成クエリでテ...
-
access インポート時、既にある...
-
更新不可能なクエリに対して更...
-
ACCESSでテーブルの一部だけを...
-
ACCESSで行数指定(5万行目~8...
-
アクセスで新しいレコードの追...
-
Access2010「クエリが複雑すぎ...
-
Accessのクロス集計→テーブル作...
-
アクセスのクエリとDlookupはど...
-
Access DAOのExecuteメソッドの...
-
Access テーブルを検索し関連性...
おすすめ情報