###前提・実現したいこと
2007年06月~08月までの商品ごとの販売金額を抽出し、更に前月からの増減を↑・→・↓で表示させる表を作りたい。
以下、増減以外を求めた表です。
MySQL
1SELECT 2 B.ProductID 3 ,D.ProductName 4 ,SUM(CASE WHEN B.年月 = '2007-06' THEN B.Price*B.Quantity ELSE 0 END) AS "6月販売金額" 5 ,SUM(CASE WHEN B.年月 = '2007-07' THEN B.Price*B.Quantity ELSE 0 END) AS "7月販売金額" 6 ,SUM(CASE WHEN B.年月 = '2007-08' THEN B.Price*B.Quantity ELSE 0 END) AS "8月販売金額" 7 FROM 8 ( 9 SELECT 10 C.ProductID 11 ,A.Quantity 12 ,C.Price 13 ,SUBSTR(A.SaleDate, 1, 7) AS 年月 14 FROM 15 Sales AS A 16 INNER JOIN 17 Products AS C 18 ON A.ProductID = C.ProductID 19 WHERE 20 A.SaleDate BETWEEN '2007-06-01' AND '2007-08-31' 21 GROUP BY 22 C.ProductID 23 ,A.Quantity 24 ,C.Price 25 ,A.SaleDate 26 ) AS B 27 INNER JOIN 28 Products AS D 29 ON B.ProductID = D.ProductID 30GROUP BY 31 B.ProductID 32ORDER BY 33 B.ProductID 34;
###発生している問題・エラーメッセージ
一番下のサブクエリが働いていないようなのですが、JOINの仕方が間違っているのでしょうか?
###ソースコード
MySQL
1SELECT 2 P.ProductID 3 ,P.ProductName 4 ,E."6月販売金額" 5 ,E."7月販売金額" 6 ,CASE WHEN E."6月販売金額" > E."7月販売金額" THEN '↓' 7 WHEN E."6月販売金額" = E."7月販売金額" THEN '→' 8 ELSE '↑' END AS "対6月増減" 9 ,E."8月販売金額" 10 ,CASE WHEN E."7月販売金額" > E."8月販売金額" THEN '↓' 11 WHEN E."7月販売金額" = E."8月販売金額" THEN '→' 12 ELSE '↑' END AS "対7月増減" 13 FROM 14 ( 15 SELECT 16 W.ProductID 17 ,SUBSTR(Q.SaleDate, 1, 7) AS 年月 18 FROM 19 Sales AS Q 20 INNER JOIN 21 Products AS W 22 WHERE 23 Q.SaleDate BETWEEN '2007-06-01' AND '2007-08-31' 24 ) AS B 25 INNER JOIN 26 Products AS P 27 ON B.ProductID = P.ProductID 28 INNER JOIN 29 ( 30 SELECT 31 D.ProductID 32 ,SUM(CASE WHEN B.年月 = '2007-06' THEN D.Price*C.Quantity ELSE 0 END) AS "6月販売金額" 33 ,SUM(CASE WHEN B.年月 = '2007-07' THEN D.Price*C.Quantity ELSE 0 END) AS "7月販売金額" 34 ,SUM(CASE WHEN B.年月 = '2007-08' THEN D.Price*C.Quantity ELSE 0 END) AS "8月販売金額" 35 FROM 36 Sales AS C 37 INNER JOIN 38 Products AS D 39 ON C.ProductID = D.ProductID 40 GROUP BY 41 D.ProductID 42 ) AS E 43 ON P.ProductID = E.ProductID 44ORDER BY 45 P.ProductID 46;
###補足情報(言語/FW/ツール等のバージョンなど)
出力項目:ProductID、ProductName、6月販売金額、7月販売金額、対6月増減、8月販売金額、対7月増減
出力順:ProductID
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/02/12 06:23 編集
退会済みユーザー
2016/02/12 00:11
2016/02/12 02:19
2016/02/12 06:06 編集
退会済みユーザー
2016/02/12 06:51
2016/02/12 07:41 編集
退会済みユーザー
2016/02/12 07:49
2016/02/12 08:08
退会済みユーザー
2016/02/12 08:37 編集
2016/02/15 00:38
退会済みユーザー
2016/02/15 00:49
2016/02/15 01:45
退会済みユーザー
2016/02/15 02:49 編集
2016/02/15 05:41
退会済みユーザー
2016/02/15 05:48
2016/02/15 06:08
2016/02/15 06:15
退会済みユーザー
2016/02/15 06:38
2016/02/15 07:08
2016/02/15 09:36