
受注管理のデータベースを作っています。
売り上げを計算するクエリを作ったのですがどうもうまくいかないので質問します。
集計したいテーブルですが
受注マスタテーブル
注文番号(主キー テキスト型)
注文日(日付型)
氏名
:
:
受注明細マスタテーブル
注文番号 (重複あり)受注マスタの注文番号と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で、DMax関数の条件の書き方
-
マクロ転記で指定した列の最終...
-
Excel 2019 のピボットテーブル...
-
Accessでテーブル名やクエリ名...
-
【マクロ】列を折りたたみ非表...
-
エクセルVBAで5行目からオート...
-
動的に生成したカラムを使ったF...
-
複数のレコードを1つのレコード...
-
SUBSTRING 関数に渡した長さの...
-
accessのレポートで元になるテ...
-
ボイスコッド正規形
-
accessでdcount使用法
-
テーブルの存在チェックについて
-
Oracle 2つのDate型の値の差を...
-
かねやんMySQLAdmin1.43
-
変数が選択リストにありません
-
SQLServer2005のSQL文での別名...
-
集計のSQLをお教え下さい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「直需」の意味を教えてください
-
「失注」の意味を教えてくださ...
-
作番ってどういう意味でしょうか?
-
受注受付期間とはなんですか?...
-
ACCESS 選択した値を別...
-
Access:サブフォームのレコー...
-
アクセスで営業日を計算させる...
-
データシート形式のサブフォー...
-
ACCESS 受注数の集計について
-
コロナ状況下のバナー広告の依...
-
アクセスのクエリで、前回に入...
-
ACCESSで、DMax関数の条件の書き方
-
更新クエリの日付抽出方法について
-
excelマクロの処理を早くしたい...
-
access 1対1と1対多のテーブ...
-
ACCESSの同時にデータ入力★初心...
-
ACCESSを活用して商品変...
-
マクロ転記で指定した列の最終...
-
ACCESS2000の帳票フォーム詳細...
-
Access、同じテーブルの2つの項...
おすすめ情報