集計して抽出するためのSQL作成方法について悩んでいます。
顧客T
営業所,顧客コード,氏名,請求顧客コード,顧客累積コード
100,10001,氏名A1,10001,10001002
100,10002,氏名B1,10004,10002002
100,10003,氏名B2,10004,10003002
100,10004,氏名B代,10004,10004002
100,90001,氏名A11,90001,10001001
100,90002,氏名B11,90004,10002001
100,90003,氏名B22,90004,10003001
100,90004,氏名B代1,90004,10004001
売上T 処理前
顧客累積コード,営業所,顧客コード,年月,科目,売上日,売上数,税込金額,税抜金額,消費税,請求顧客コード
10001002,100,10001,201808,1,20180820,3.5,1620,1500,120,10001
10001001,100,90001,201808,1,20180806,4.0,2160,2000,160,90001
10001001,100,90001,201808,2,20180806,3.0,1080,1000,80,90001
10002002,100,10002,201808,1,20180825,7.0,3240,3000,240,10004
10003002,100,10003,201808,1,20180825,2.0,1080,1000,80,10004
10002001,100,90002,201808,1,20180810,1.0,540,500,40,90004
10003001,100,90003,201808,1,20180810,1.5,810,750,60,90004
10003001,100,90003,201808,2,20180810,0.5,270,250,20,90004
売上T 処理後
顧客累積コード,営業所,顧客コード,年月,科目,売上日,売上数,税込金額,税抜金額,消費税,請求顧客コード
10001002,100,10001,201808,1,20180820,3.5,1620,1500,120,10001
10001001,100,90001,201808,1,20180806,1.0,1080,1000,80,90001
10004002,100,10004,201808,1,20180825,9.0,4320,4000,320,10004
10004001,100,90004,201808,1,20180810,2.0,1080,1000,80,90004
売上Tで請求顧客コードごとに1件化する処理を行いたいと思っています。
(処理したいこと)
○営業所・請求顧客コード・年月・売上日ごとに、集計します。
○集計する項目は、売上数・税込金額・税抜金額・消費税です。
○売上数は文字列のため、数値に変換します。
○科目:1はプラス計算、2はマイナス計算します。
○請求顧客コード(代表)のところには集計した後に、請求顧客コードを顧客コードに書き換えます。
(例)顧客コード:10002・10003の請求顧客コードは10004、顧客コード:90002・90003の請求顧客コードは90004です。一件化して抽出した際に、顧客コードは10004・90004になります。
○営業所は複数存在します。上記データでは営業所:100のものを例に記載しています。
○処理したデータは、売上T 処理後のような結果で抽出したいです。
SELECT
売上T.営業所
, 売上T.請求顧客コード
, 売上T.年月
, 売上T.売上日
, SUM(CASE WHEN 売上T.科目 = 2 THEN TO_NUMBER(売上T.売上数) * -1 ELSE TO_NUMBER(売上T.売上数) END) AS 売上数
, SUM(CASE WHEN 売上T.科目 = 2 THEN 売上T.税込金額 * -1 ELSE 売上T.税込金額 END) AS 税込金額
, SUM(CASE WHEN 売上T.科目 = 2 THEN 売上T.税抜金額 * -1 ELSE 売上T.税抜金額 END) AS 税抜金額
, SUM(CASE WHEN 売上T.科目 = 2 THEN 売上T.消費税 * -1 ELSE 売上T.消費税 END) AS 消費税
FROM
売上T
GROUP BY
売上T.営業所
, 売上T.請求顧客コード
, 売上T.年月
, 売上T.売上日
;
このようなSQLにて集計することまではできるのですが、以降の処理でどのように作成するのか悩んでいるところです。どう処理するのがいいのか、教えてください。
No.2ベストアンサー
- 回答日時:
よくわらかないので、この情報ではせいぜいこのレベルです。
SELECT
C.顧客累積コード
, C.営業所
, C.請求顧客コード AS 顧客コード
, C.年月
, 1 AS 科目
, C.売上数
, C.税込金額
, C.税抜金額
, C.消費税
, C.請求顧客コード
FROM
(
SELECT
A.営業所
, A.請求顧客コード
, A.年月
, A.売上日
, B.顧客累積コード
, SUM(DECODE(A.科目, 1, TO_NUMBER(売上数), 2, TO_NUMBER(売上数) * 1) AS 売上数
, SUM(DECODE(A.科目, 1, TO_NUMBER(税込金額), 2, TO_NUMBER(税込金額) * 1) AS 税込金額
, SUM(DECODE(A.科目, 1, TO_NUMBER(税抜金額), 2, TO_NUMBER(税抜金額) * 1) AS 税抜金額
, SUM(DECODE(A.科目, 1, TO_NUMBER(消費税), 2, TO_NUMBER(消費税) * 1) AS 消費税
FROM
売上T A
, 顧客T B
WHERE
売上T.営業所 = 顧客T.営業所
AND 売上T.請求顧客コード = 顧客T.顧客コード
GROUP BY
A.営業所
, A.請求顧客コード
, A.年月
, A.売上日
, B.顧客累積コード
) C
情報不足のなか、お答えいただき、ありがとうございました。
なんとか作ってみましたが、naktakさんの方法を参考にしつつ作ってみるとどのように動作するのか確認してみます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルでSUMIFS関数で条件範囲の部分が#valueになる。 4 2023/04/28 12:42
- 政治 日本で訴訟件数が少ないのは、自民党とビッグモーターが詐欺組織だからですか? 2 2023/07/27 11:30
- 消費税 インボイス制度 2 2022/11/19 14:44
- 法人税 浄水器レンタル 経理処理 1 2023/06/29 17:16
- 消費税 中古車販売と消費税・インボイス制度について 2 2022/12/21 13:32
- 経営情報システム 前受けと預り金の違いについて 3 2022/04/28 15:10
- その他(Microsoft Office) パワークエリの複数ファイルのデータ統合について 3 2022/07/14 17:06
- 会社経営 ビッグモーターが話題に、なつてるけど。 一般市民 顧客的に考えたら 保険金詐欺。 叩かれても仕方ない 4 2023/07/30 10:43
- その他(ビジネス・キャリア) 経営も営業もやったこと無く、すぐに諦めてしまう社長を改善させるには? 5 2023/02/22 12:41
- 会社経営 代表の考え方が気に入らないです 私は今の会社で働いて2年半 元夫と元夫の友人が立ち上げた会社に属して 2 2022/06/19 06:36
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SQLでグループ化した結果の件数...
-
項目名の制限について
-
MySQLで改行を含む文の登録のし...
-
Accessで複数テーブルのJoin
-
列名無効について
-
SQLを教えて下さい
-
SQL抽出方法に悩んでいます④
-
Excel 2019 のピボットテーブル...
-
「直需」の意味を教えてください
-
エクセルVBAで5行目からオート...
-
Accessでテーブルの値をテキス...
-
作番ってどういう意味でしょうか?
-
Accessでテーブル名やクエリ名...
-
ACCESSのクエリで集計で、先頭...
-
Access テキスト型に対する指定...
-
accessのレポートで元になるテ...
-
テーブルの存在チェックについて
-
Accessのリンクテーブルのパス...
-
セルの右クリックで出る項目を...
-
Accessクエリーで両方のテーブ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
MySQLで改行を含む文の登録のし...
-
項目名の制限について
-
SQLでグループ化した結果の件数...
-
ORA-01722: 数値が無効です
-
列名無効について
-
フォームで検索 エラーの表示...
-
オラクルSQLの累計値取得方法に...
-
SQL文のエラーについて
-
縦表示データを列として取得す...
-
♪Oracle SQL 処理が成功した時...
-
SQLでNOT INと!=ALLの違い
-
アクセスのクエリについて(前...
-
Accessで期間指定の売上合計と...
-
改行コードを削除して取得する...
-
SQL文 2つのテーブルから、グ...
-
Oracleでテーブルの結合について
-
以下のようなSQLについて教えて...
-
LEFT JOINとRIGHT JOINについて
-
SQL文(県名一覧・・)
-
SQL文の書き方
おすすめ情報