質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

Q&A

解決済

1回答

231閲覧

1月から12月の売上データで月次集計する方法についてです。

marshmallowy

総合スコア204

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

0グッド

1クリップ

投稿2017/08/30 07:59

編集2017/08/30 09:21

###前提・実現したいこと
1月から12月の売上データで月次集計を行いたいです。

現在、集計はできているのですが、見た目の部分で躓いております。
下記の画像は現状です。
イメージ説明

下記の画像は完成図です。
完成イメーじです

教授の程、宜しくお願い申し上げます。

###該当のソースコード

sales_order_id,seller_id,keyboarder_id,account_type_id,processing_status_id,selling_party_id,orderer_id,buyer_id,point_of_sale_id,sales_method_id,payment_method_id,customer_group_id,number_of_customer,consumption_tax_rate,free_tax_rate,use_points,usually_grand_total,custom_grand_total,grand_consumption_tax_total,reward_points,payment_confirm 1,1,1,1,2,2,3,3,5,1,28,3,1,0,8,0,0,32000,0,320,2017-06-01 2,1,1,2,2,2,1,1,5,1,29,3,1,0,8,0,0,3700,0,37,2017-06-01 3,1,1,1,2,2,2,2,5,1,28,2,1,0,8,0,0,60000,0,600,2017-06-01 4,1,1,2,2,2,1,1,5,1,29,2,1,0,8,0,0,4100,0,41,2017-06-01 5,1,1,1,2,3,3,2,4,1,17,2,1,8,0,0,29000,0,2320,290,2017-06-01 6,1,1,2,2,3,1,1,4,1,19,2,1,8,0,0,600,0,48,6,2017-06-01 7,1,1,1,2,2,2,2,4,1,20,2,1,8,0,0,62000,0,4960,620,2017-06-01 8,1,1,1,2,3,3,3,4,1,15,4,1,8,0,0,25500,0,2040,255,2017-06-01 9,1,1,1,2,3,3,2,2,1,1,2,1,8,0,0,9259,0,741,185,2017-06-01 10,1,1,1,2,2,2,2,5,1,28,2,1,0,8,0,0,8000,0,80,2017-06-02 11,1,1,2,2,2,1,1,5,9,29,2,1,0,8,0,0,1400,0,14,2017-06-02 12,1,1,1,2,2,2,2,5,1,26,1,1,0,8,0,0,70000,0,700,2017-06-02 13,1,1,1,2,3,3,2,5,1,28,2,1,0,8,1588,0,66212,0,662,2017-06-02 14,1,1,1,2,3,3,3,2,1,1,2,1,8,0,7500,40500,0,3240,810,2017-06-02 324,6,6,1,2,3,3,3,4,1,15,2,1,8,0,0,23000,0,1840,230,2017-07-01 325,6,6,1,2,2,2,2,5,1,28,2,1,0,8,0,0,48000,0,480,2017-07-01 326,6,6,2,2,2,1,1,5,9,29,2,1,0,8,0,0,2700,0,27,2017-07-01 327,6,6,1,2,2,2,2,2,1,1,3,1,8,0,0,16000,0,1280,320,2017-07-01 328,6,6,1,2,2,2,2,2,1,3,2,1,8,0,0,116950,0,9356,2339,2017-07-01 329,6,6,1,2,3,3,3,4,2,17,2,1,8,0,650,81350,0,6508,814,2017-07-01 330,6,6,1,2,3,3,3,4,9,19,2,1,8,0,0,600,0,48,6,2017-07-01 331,6,6,1,2,3,3,3,2,8,1,4,1,8,0,0,18000,0,1440,360,2017-07-01 332,6,6,1,2,3,3,2,2,8,7,2,1,8,0,0,29815,0,2385,596,2017-07-01 333,6,6,1,2,3,3,2,2,4,7,2,1,8,0,0,20426,0,1634,409,2017-07-01 348,6,6,1,2,3,3,3,4,1,15,2,1,8,0,0,92500,0,7400,925,2017-07-02 349,6,6,1,2,2,2,2,4,1,15,2,1,8,0,0,16667,0,1333,167,2017-07-02 350,6,6,1,2,3,3,3,4,1,15,2,1,8,0,0,75000,0,6000,750,2017-07-02 351,6,6,1,2,2,2,2,4,4,15,2,1,8,0,500,39584,0,3167,396,2017-07-02 352,6,6,1,2,2,2,2,2,1,1,2,1,8,0,0,17000,0,1360,340,2017-07-02 353,6,6,1,2,2,2,2,2,1,1,2,1,8,0,0,12600,0,1008,252,2017-07-02 354,6,6,1,2,3,3,2,4,1,15,2,1,8,0,0,105000,0,8400,1050,2017-07-02 615,5,5,2,2,3,1,1,1,9,27,2,1,0,0,0,0,0,0,0,2017-08-10 616,1,1,1,2,2,2,2,2,1,1,2,1,8,0,0,23000,0,1840,460,2017-08-10 617,1,1,1,2,2,2,2,2,1,1,2,1,8,0,2761,392258,0,31381,7845,2017-08-11 618,1,1,1,2,2,2,2,2,6,3,2,1,8,0,0,200000,0,16000,4000,2017-08-11 619,1,1,1,2,3,3,2,5,1,26,2,1,0,8,1352,0,26648,0,266,2017-08-11 620,1,1,1,2,3,3,3,5,1,26,2,1,0,8,0,0,27000,0,270,2017-08-11 621,1,1,1,2,3,1,1,5,9,27,2,1,0,8,0,0,3300,0,33,2017-08-11 622,1,1,1,2,2,2,2,4,6,15,2,1,8,0,373,51627,0,4130,520,2017-08-11 623,2,2,1,2,3,3,2,2,1,3,3,1,8,0,0,140000,0,11200,2800,2017-08-11 624,4,2,1,2,3,3,2,2,1,1,2,1,8,0,0,21000,0,1680,420,2017-08-11 625,2,2,1,2,3,3,2,2,1,1,2,1,8,0,0,74074,0,5926,1481,2017-08-11 626,2,2,1,2,3,3,3,2,1,1,1,1,8,0,40,5460,0,437,109,2017-08-11 627,4,2,1,2,3,3,3,2,2,3,3,1,8,0,0,18000,0,1440,360,2017-08-11 628,4,2,1,2,3,3,2,2,1,1,2,1,8,0,600,7900,0,632,158,2017-08-11 629,2,2,1,2,3,3,2,2,1,3,2,1,8,0,0,41000,0,3280,820,2017-08-11 630,1,1,1,2,2,2,2,2,1,1,2,1,8,0,0,625269,0,50022,12505,2017-08-11 631,1,1,1,2,2,2,2,4,1,15,2,1,8,0,0,48000,0,3840,480,2017-08-12 632,1,1,1,2,2,2,2,4,1,22,2,1,8,0,0,13300,0,1064,133,2017-08-12 633,1,1,1,2,2,2,2,5,1,28,2,1,0,8,664,0,69336,0,693,2017-08-12 634,1,1,2,2,2,1,1,5,9,29,2,1,0,8,0,0,3700,0,37,2017-08-12

SQL

1SELECT 2 DATE_FORMAT( R.payment_confirm , '%Y-%m' ) AS '年月' 3 -- F社 4 , IFNULL(SUM(R.usually_grand_total * (R.point_of_sale_id = '2') * (R.orderer_id = '2')) + SUM(R.custom_grand_total * (R.point_of_sale_id = '3') * (R.orderer_id = '2')) + SUM(R.grand_consumption_tax_total * (R.point_of_sale_id = '2') * (R.orderer_id = '2')), 0) AS 'F社 - 店舗' 5 , IFNULL(SUM(R.usually_grand_total * (R.point_of_sale_id = '4') * (R.orderer_id = '2')) + SUM(R.grand_consumption_tax_total * (R.point_of_sale_id = '4') * (R.orderer_id = '2')), 0) AS 'F社 - 国内通販' 6 , IFNULL(SUM(R.custom_grand_total * (R.point_of_sale_id = '5') * (R.orderer_id = '2')), 0) AS 'F- 海外通販' 7 , IFNULL(SUM(R.usually_grand_total * (R.orderer_id = '2')) + SUM(R.custom_grand_total * (R.orderer_id = '2')) + SUM(R.grand_consumption_tax_total * (R.orderer_id = '2')), 0) AS 'F社 - 合計' 8 -- R社 9 , IFNULL(SUM(R.usually_grand_total * (R.point_of_sale_id = '2') * (R.orderer_id = '3')) + SUM(R.custom_grand_total * (R.point_of_sale_id = '3') * (R.orderer_id = '3')) + SUM(R.grand_consumption_tax_total * (R.point_of_sale_id = '2') * (R.orderer_id = '3')), 0) AS 'R社 - 店舗' 10 , IFNULL(SUM(R.usually_grand_total * (R.point_of_sale_id = '4') * (R.orderer_id = '3')) + SUM(R.grand_consumption_tax_total * (R.point_of_sale_id = '4') * (R.orderer_id = '3')), 0) AS 'R社 - 国内通販' 11 , IFNULL(SUM(R.custom_grand_total * (R.point_of_sale_id = '5') * (R.orderer_id = '3')), 0) AS 'R社 - 海外通販' 12 , IFNULL(SUM(R.usually_grand_total * (R.orderer_id = '3')) + SUM(R.custom_grand_total * (R.orderer_id = '3')) + SUM(R.grand_consumption_tax_total * (R.orderer_id = '3')), 0) AS 'R社 - 合計' 13 -- C社 14 , IFNULL(SUM(R.usually_grand_total * (R.point_of_sale_id = '2') * (R.orderer_id = '4')) + SUM(R.custom_grand_total * (R.point_of_sale_id = '3') * (R.orderer_id = '4')) + SUM(R.grand_consumption_tax_total * (R.point_of_sale_id = '2') * (R.orderer_id = '4')), 0) AS 'C社 - 店舗' 15 , IFNULL(SUM(R.usually_grand_total * (R.point_of_sale_id = '4') * (R.orderer_id = '4')) + SUM(R.grand_consumption_tax_total * (R.point_of_sale_id = '4') * (R.orderer_id = '4')), 0) AS 'C社 - 国内通販' 16 , IFNULL(SUM(R.custom_grand_total * (R.point_of_sale_id = '5') * (R.orderer_id = '4')), 0) AS 'C社 - 海外通販' 17 , IFNULL(SUM(R.usually_grand_total * (R.orderer_id = '4')) + SUM(R.custom_grand_total * (R.orderer_id = '4')) + SUM(R.grand_consumption_tax_total * (R.orderer_id = '4')), 0) AS 'C社 - 合計' 18FROM 19 vw_digits as D 20LEFT JOIN 21 ( SELECT * FROM vw_result ) R 22ON 23 ADDDATE(DATE_FORMAT( R.payment_confirm , '%Y-%m-01' ), D.number) = DATE(R.payment_confirm) 24GROUP BY DATE_FORMAT( R.payment_confirm , '%Y-%m' );

###補足情報(言語/FW/ツール等のバージョンなど)
MySQL

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2017/08/30 08:02

「見た目」というのはどういうことでしょうか?
marshmallowy

2017/08/30 08:03

現在の状態の画像を付け加えます。
m.ts10806

2017/08/30 08:05

できれば「どのようにしたい」と明確なゴールを記述ください。
guest

回答1

0

ベストアンサー

vw_digitsのデータが非効率に見えますが
これは単に縦横を逆転したいということでしょうか?
考え方としてはピボットテーブルでやるのがロジック的にはラクです
具体的には元データを画像ではないソースデータで提示してもらえれば
回答できるかもしれません

投稿2017/08/30 08:12

yambejp

総合スコア114585

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

marshmallowy

2017/08/30 08:21 編集

ソースデータとは、蓄積されている売上データのことでよろしかったでしょうか?
yambejp

2017/08/30 08:22 編集

例示するためのなんらかのサンプルデータがあれば大丈夫です 画像でなければすでにあがっているデータを テキストでアップしてもらってもかまいません
yambejp

2017/08/30 09:05

データ拝見しました 正規化されてないみたいですが、これが生データだとおもっていいですか? このデータの提示であれば、申し訳ないですが mysqldumpコマンドもしくは、phpMyAdminでテーブルを選んで エクスポートでSQL形式で出力してもらえませんか?
marshmallowy

2017/08/30 09:14

提示したデータはビューで複数テーブルを結合したものです。
marshmallowy

2017/08/30 09:14

もう一つのデータを提示いたします。
marshmallowy

2017/08/30 09:22

売上データを差し替えました。 ご確認のほど、宜しくお願い申し上げます。
yambejp

2017/08/31 00:41

確認しましたがご提示の情報では情報不足で例示のSELECT文が 実行できません 日付単位を年月単位に集計後に、月次で集計する意図だと思いますので 一度ビューを作った上で処理されると良いと思います
marshmallowy

2017/08/31 01:27

ありがとうございます。 一度、締め切らせていただきます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問