0

こんにちは、日付に基づいて売上をグループ化することにより、毎月の売上をクエリで表示します。
しかし、毎月の売上の横に表示したいと思います。次のクエリを試してみましたが、売上だけが返されます。しかし何ヶ月もありません。

SELECT 
CASE 
    WHEN created_at BETWEEN "2012-01-01" and "2012-01-31" THEN "Jan"
    WHEN created_at BETWEEN "2012-02-01" and "2012-02-28" THEN "Feb"
    WHEN created_at BETWEEN "2012-03-01" and "2012-03-31" THEN "Mar"
    WHEN created_at BETWEEN "2012-04-01" and "2012-04-30" THEN "April"
    WHEN created_at BETWEEN "2012-05-01" and "2012-05-31" THEN "May" 
    WHEN created_at BETWEEN "2012-06-01" and "2012-06-30" THEN "June"
    WHEN created_at BETWEEN "2012-07-01" and "2012-07-31" THEN "July"
    WHEN created_at BETWEEN "2012-08-01" and "2012-08-31" THEN "Aug"
    WHEN created_at BETWEEN "2012-09-01" and "2012-09-30" THEN "Sep"
    WHEN created_at BETWEEN "2012-10-01" and "2012-10-31" THEN "Oct"
    WHEN created_at BETWEEN "2012-11-01" and "2012-11-30" THEN "Nov"
    ELSE "Dec" 
END AS "month" , SUM(grand_total) AS total
FROM sales
WHERE created_at >="2012-01-01" AND created_at <="2013-01-01"
GROUP BY TIMESTAMPDIFF(MONTH, "2012-01-01" + INTERVAL 1 DAY, created_at)

以下のように売上の横に月を表示するにはどうすればよいですか。

+------+-------+
| Month| Total |
+------+-------+
| Jan  |  1200 |
| Feb  |  5555 |
| Mar  |  1235 | 
| Apr  |  1299 | 
+------+-------+

前もって感謝します。

4

2 に答える 2

2

これを試して:

SELECT MONTHNAME(created_at) AS month , SUM(grand_total) AS total
FROM sales
WHERE created_at BETWEEN '2012-01-01' AND '2013-01-01'
GROUP BY MONTHNAME(created_at)
于 2013-08-27T20:09:32.397 に答える
1

とを使用group bymonthname()ます。

SELECT monthname(created_at), SUM(grand_total) AS total
FROM sales
WHERE created_at >= '2012-01-01' AND created_at < '2013-01-01'
GROUP BY monthname(created_at)
order by month(created_at);
于 2013-08-27T20:07:42.563 に答える