受注管理のデータベースを作っています。
売り上げを計算するクエリを作ったのですがどうもうまくいかないので質問します。
集計したいテーブルですが
受注マスタテーブル
注文番号(主キー テキスト型)
注文日(日付型)
氏名
:
:
受注明細マスタテーブル
注文番号 (重複あり)受注マスタの注文番号と1対多のリレーションシップ
商品名
品番
販売単価
購入個数
経費・返品金額テーブル
注文番号(主キー)受注マスタの注文番号と1対1のリレーションシップ
経費
返品金額
これを、販売単価×購入個数-経費+返品金額というようにして1ヵ月ごとに集計しようとして、下のようなクエリを作ったのですが経費が何回も計算されてうまくいきませんでした…
よろしくお願いします。
SELECT Format(注文者マスタ!注文日,"yyyy/mm") AS 月, Sum([受注明細マスタ]![販売単価]*[受注明細マスタ]![購入数量]-[経費・返品金額テーブル]![経費]+[経費・返品金額テーブル]![返品金額]) AS 売上
FROM (注文者マスタ RIGHT JOIN 経費・返品金額テーブル ON 注文者マスタ.注文番号 = 経費・返品金額テーブル.注文番号) LEFT JOIN 受注明細マスタ ON 注文者マスタ.注文番号 = 受注明細マスタ.注文番号
GROUP BY Format(注文者マスタ!注文日,"yyyy/mm");
No.1ベストアンサー
- 回答日時:
受注明細が注文番号だけでは1件に絞られず複数件抽出されるので
これと結合している時点で受注、経費のテーブルからは
同じレコードを何回も使って結合を行ってしまいます。
1:1:1になるように、先に受注明細だけ集計を取っておいて
サブクエリとするのが適切かと。
SELECT Format([注文者マスタ].[注文日],"yyyy/mm") AS 月, Sum(A.[購入金額] - [経費・返品金額テーブル].[経費] + [経費・返品金額テーブル].[返品金額]) AS 売上
FROM (注文者マスタ LEFT JOIN 経費・返品金額テーブル ON 注文者マスタ.注文番号 = 経費・返品金額テーブル.注文番号) LEFT JOIN
(SELECT 注文番号, Sum(販売単価 * 購入数量) AS 購入金額 FROM 受注明細マスタ GROUP BY 注文番号) A
ON 注文者マスタ.注文番号 = A.注文番号
GROUP BY Format(注文者マスタ.注文日,"yyyy/mm");
↑こんな感じでお望みの結果が得られませんでしょうか。
(SELECT 注文番号, Sum(販売単価 * 購入数量) AS 購入金額 FROM 受注明細マスタ GROUP BY 注文番号) A
SQLが煩雑になるのを避けたいならば、この部分だけをあらかじめ一つのクエリとして作っておいて
そのクエリと結合する形でもできますよ。
できました!ありがとうございます!
すばやいご回答ありがとうございます!
サブクエリやクエリを分けて考えるということはまったく知りませんでした。
いくら悩んでも解決しないわけです…
いつも何か問題にぶつかるたびに親切なご回答を頂いて本当に助かります。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(データベース) accessでの請求管理について 2 2022/06/13 21:51
- 経営情報システム accessでの請求管理について 12 2022/06/11 16:20
- Excel(エクセル) VBA でvlookup エラーなどは削除したい 8 2022/12/30 04:03
- その他(データベース) accessについて 2 2022/05/31 16:58
- その他(データベース) pythonでsqlight勉強中、クエリー結果の利用法教えて下さい 1 2022/04/28 20:38
- SQL Server AccessのInsertクエリのあとつづけてDeleteクエリを行いたいがSQLでどう書いたらいい 3 2023/05/27 14:12
- Amazon アマゾン 7 2022/06/11 11:03
- その他(ネットショッピング・通販・ECサイト) ネットで注文の品違いで連絡ができず困っています。 3 2022/08/01 17:08
- 楽天市場 ネット通販。店舗都合でのキャンセルについて。 3 2023/01/22 14:12
- 楽天市場 先程のにありがとうございます。ご入金の確認できました。 早速出荷の準備を行いますので、ご安心ください 1 2022/12/21 11:07
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「直需」の意味を教えてください
-
作番ってどういう意味でしょうか?
-
「失注」の意味を教えてくださ...
-
受注受付期間とはなんですか?...
-
ACCESS 選択した値を別...
-
アクセスで営業日を計算させる...
-
Access:サブフォームのレコー...
-
ACCESSで、DMax関数の条件の書き方
-
マクロ転記で指定した列の最終...
-
access 1対1と1対多のテーブ...
-
アクセスのクエリで、前回に入...
-
Excel 2019 のピボットテーブル...
-
エクセルVBAで5行目からオート...
-
Accessでテーブル名やクエリ名...
-
Accessでテーブルの値をテキス...
-
Accessでコードを入れると名前...
-
Access テキスト型に対する指定...
-
ACCESSでの改行コード
-
ORACLEでLONG項目からCHAR項目...
-
datファイルからaccessにインポ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「直需」の意味を教えてください
-
作番ってどういう意味でしょうか?
-
「失注」の意味を教えてくださ...
-
ACCESSで、DMax関数の条件の書き方
-
Access:サブフォームのレコー...
-
アクセスで営業日を計算させる...
-
ACCESS 選択した値を別...
-
アクセスのクエリで、前回に入...
-
マクロ転記で指定した列の最終...
-
受注受付期間とはなんですか?...
-
Accessの受注発注について
-
フォーム入力、更新後処理で指...
-
会社 ファイルの収納
-
データシート形式のサブフォー...
-
EXCEL 最終行に入力するマクロ
-
通販サイトの運用の問題点は?
-
VBA でvlookup エラーなどは削...
-
エクセル・スプレッドシートで...
-
更新クエリの日付抽出方法について
-
ACCESS 受注数の集計について
おすすめ情報