SQL抽出方法に悩んでいます④
度々で恐縮ですが、質問させてください。
(TABLE1)
営業所,顧客番号,代表顧客番号,氏名,売上日,売上区分,販売数量,販売金額(税込),消費税
1000,900001,900001,田中太郎,20180801,1,0,0,0 ①
1000,000001,900001,田中太郎,20180801,1,1,1080,80 ②
1000,000002,900001,田中太郎,20180801,1,2,2160,160 ③
1000,000002,900001,田中太郎,20180801,2,-1,-540,-40 ④
1000,000003,000000,佐藤三郎,20180730,1,4,3240,240 ⑤
1000,000003,000000,佐藤三郎,20180802,1,1,540,40 ⑥
2000,000001,000000,村井四郎,20180803,1,5,4320,320 ⑦
2000,000001,000000,村井四郎,20180803,2,-2,-324,-24 ⑧
(TABLE2)
営業所,顧客番号,代表顧客番号,氏名,売上日,売上区分,販売数量,販売金額(税込),消費税
1000,900001,900001,田中太郎,20180801,1,2,2700,200 計算結果は②③④の合算を①の代表顧客へ反映
1000,000003,000000,佐藤三郎,20180730,1,4,3240,240 計算結果は⑤のみ
1000,000003,000000,佐藤三郎,20180802,1,1,540,40 計算結果は⑥のみ
2000,000001,000000,村井四郎,20180803,1,3,3996,296 計算結果は⑦⑧の合算
TABLE1には商品売上金額データが入っており、
TABLE2に記載している方法にて結果を求めたいと考えていますが、
どのように構築したら良いのでしょうか。
No.3ベストアンサー
- 回答日時:
INSERT INTO TABLE2(営業所,顧客番号,代表顧客番号,氏名,売上日,売上区分,販売数量,"販売金額(税込)",消費税)
SELECT 営業所
, CASE 代表顧客番号 WHEN '000000' THEN 顧客番号 ELSE 代表顧客番号 END AS 顧客番号
, 代表顧客番号
, 氏名
, 売上日
, CASE WHEN SUM(CASE 売上区分 WHEN '1' THEN 販売数量 WHEN '2' THEN -販売数量 END) < 0 THEN MAX(売上区分) ELSE MIN(売上区分) END AS 売上区分
, SUM(CASE 売上区分 WHEN '1' THEN 販売数量 WHEN '2' THEN -販売数量 END) AS 販売数量
, SUM(CASE 売上区分 WHEN '1' THEN "販売金額(税込)" WHEN '2' THEN -"販売金額(税込)" END) AS "販売金額(税込)"
, SUM(CASE 売上区分 WHEN '1' THEN 消費税 WHEN '2' THEN -消費税 END) AS 消費税
FROM TABLE1
GROUP BY 営業所
, CASE 代表顧客番号 WHEN '000000' THEN 顧客番号 ELSE 代表顧客番号 END
, 代表顧客番号
, 氏名
, 売上日
お礼が遅くなり、申し訳ございません。
SUM文の中でも、条件をうまく使えばマイナス計算処理もできそうですね。
この悩みも解決できそうです。良い処理方法をご教授頂き、ありがとうございました。
No.2
- 回答日時:
INSERT INTO TABLE2(営業所,顧客番号,代表顧客番号,氏名,売上日,売上区分,販売数量,"販売金額(税込)",消費税)
SELECT 営業所
, CASE 代表顧客番号 WHEN '000000' THEN 顧客番号 ELSE 代表顧客番号 END AS 顧客番号
, 代表顧客番号
, 氏名
, 売上日
, CASE WHEN SUM(販売数量) < 0 THEN MAX(売上区分) ELSE MIN(売上区分) END AS 売上区分
, SUM(販売数量) AS 販売数量
, SUM("販売金額(税込)") AS "販売金額(税込)"
, SUM(消費税) AS 消費税
FROM TABLE1
GROUP BY 営業所
, CASE 代表顧客番号 WHEN '000000' THEN 顧客番号 ELSE 代表顧客番号 END
, 代表顧客番号
, 氏名
, 売上日
いつも教えていただき、ありがとうございます。
こういう作り方があるんだと、毎回発見ばかりで参考になります。
追加で質問となりますが、TABLE1の販売数量・販売金額・消費税などの数値項目でマイナスの場合でもマイナス表記されない(売上区分’2’がマイナスの位置づけです)としても、TABLE2で同様の結果を求めたい時の集計はできるのでしょうか。
(TABLE1:処理前)
営業所,顧客番号,代表顧客番号,氏名,売上日,売上区分,販売数量,販売金額(税込),消費税
1000,900001,900001,田中太郎,20180801,1,0,0,0 ①
1000,000001,900001,田中太郎,20180801,1,1,1080,80 ②
1000,000002,900001,田中太郎,20180801,1,2,2160,160 ③
1000,000002,900001,田中太郎,20180801,2,1,540,40 ④
1000,000003,000000,佐藤三郎,20180730,1,4,3240,240 ⑤
1000,000003,000000,佐藤三郎,20180802,1,1,540,40 ⑥
2000,000001,000000,村井四郎,20180803,1,5,4320,320 ⑦
2000,000001,000000,村井四郎,20180803,2,2,324,24 ⑧
(TABLE2:処理後)
営業所,顧客番号,代表顧客番号,氏名,売上日,売上区分,販売数量,販売金額(税込),消費税
1000,900001,900001,田中太郎,20180801,1,2,2700,200 計算結果は②③④の合算を①の代表顧客へ反映
1000,000003,000000,佐藤三郎,20180730,1,4,3240,240 計算結果は⑤のみ
1000,000003,000000,佐藤三郎,20180802,1,1,540,40 計算結果は⑥のみ
2000,000001,000000,村井四郎,20180803,1,3,3996,296 計算結果は⑦⑧の合算
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 政治 次の愛国心あった田中派・経世会と売国心しかない清和会の全く真逆の違いをどう思いまっか? 1 2023/05/28 20:38
- その他(お金・保険・資産運用) 至急!【Wolt】各メニューの価格設定の簡単な計算方法 3 2023/03/05 11:58
- C言語・C++・C# c言語の問題です 2 2023/07/21 10:51
- Excel(エクセル) メモ帳からエクセルにセル区切りで表示させたいんです 7 2023/02/25 22:04
- Excel(エクセル) エクセルでSUMIFS関数で条件範囲の部分が#valueになる。 4 2023/04/28 12:42
- Excel(エクセル) エクセルVBA VLOOKUPを使ってのカウント作業 2 2023/02/19 09:03
- 野球 WBC日本代表 [2] 1 2022/06/07 21:52
- メディア・マスコミ 統一創価等朝鮮カルト極悪犯罪反日売国テロ自公政権が、テレビに出演してほしくない人物は 5 2023/03/29 07:52
- 政治 山本太郎演説会 【消費税の嘘八百を暴く】 福祉 医療に使われてない、貧乏人虐めだ 企業の法人税減税= 2 2022/06/23 15:35
- 公認会計士・税理士 申告書等の税理士欄について 5 2022/09/14 17:23
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
項目名の制限について
-
UPDATE文を教えて頂けな...
-
改行コードを削除して取得する...
-
SQLでグループ化した結果の件数...
-
オラクルSQLの累計値取得方法に...
-
MySQLで改行を含む文の登録のし...
-
LEFT JOINとRIGHT JOINについて
-
日付に関するSQL分で
-
Excel 2019 のピボットテーブル...
-
エクセルVBAで5行目からオート...
-
Accessでテーブル名やクエリ名...
-
Accessでテーブルの値をテキス...
-
Access 昇順・降順で並び替え...
-
ACCESSのクエリで集計で、先頭...
-
Accessのフィールド数が255しか...
-
作番ってどういう意味でしょうか?
-
「直需」の意味を教えてください
-
Accessクエリーで両方のテーブ...
-
Oracle 2つのDate型の値の差を...
-
Oracleのビュー作成時に「指定...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SQLでグループ化した結果の件数...
-
MySQLで改行を含む文の登録のし...
-
フォームで検索 エラーの表示...
-
項目名の制限について
-
ORA-01722: 数値が無効です
-
列名無効について
-
オラクルSQLの累計値取得方法に...
-
Accessで期間指定の売上合計と...
-
SQL文 2つのテーブルから、グ...
-
SQLでNOT INと!=ALLの違い
-
改行コードを削除して取得する...
-
縦表示データを列として取得す...
-
SQLServerにおける累積、累計取...
-
SQL抽出方法:売上Tを集計した...
-
SQL文のエラーについて
-
SQL文(県名一覧・・)
-
集計のSQLをお教え下さい
-
各店舗毎の最大売上の項目を取...
-
Oracleでテーブルの結合について
-
【 困 】 ストアドプロシージャ
おすすめ情報