我有这张桌子
| box | indate |
----------------------
| 500 | 2015-01-19 |
----------------------
|200 | 2015-01-17 |
---------------------
| 1000 | 2015-03-19 |
---------------------
| 500 | 2015-03-7 |
---------------------
我想要这个Repot
| Year - Month| Total In box |
------------------------------
| 2015- 01 | 700 |
------------------------------
| 2015-03 | 1500 |
------------------------------
此外,我想在php中显示年度报告。
这是我到目前为止所尝试的:
SELECT DATE_FORMAT(indate,'%Y-%m'), SUM(box)
FROM in GROUP BY YEAR(indate), MONTH(indate)
答案 0 :(得分:1)
您可以格式化日期以仅显示年份和月份。您还可以对结果进行分组,并将其与分组行的总和相结合。
在MySQL中格式化日期值(即日期,日期时间),您可以使用formatters将日期格式化为特定格式。
查看此fiddle。
答案 1 :(得分:0)
尝试:
Select DATE_FORMAT(indate,'%Y-%m') as indateDate, sum(box) as totalBox FROM <your_table_name> GROUP BY indateDate;
答案 2 :(得分:0)
你非常接近
只需修改您的查询,然后使用SUM(box)
代替COUNT(box)
像这样:
SELECT DATE_FORMAT(indate,'%Y-%m') as indate, SUM(box)
FROM Table1 GROUP BY YEAR(indate), MONTH(indate);
对于明智的报告,只是不要在分组依据中包含MONTH
:
SELECT DATE_FORMAT(indate,'%Y-%m') as indate, SUM(box)
FROM Table1 GROUP BY YEAR(indate);
答案 3 :(得分:0)
尝试:
SELECT concat(YEAR(indate), '-', MONTH(indate)), sum(box)
FROM
reporttable
GROUP BY YEAR(indate), MONTH(indate) ASC