显示每月明智的报告

Display month wise report

我有这个table

| 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)

尝试:

Select DATE_FORMAT(indate,'%Y-%m') as indateDate, sum(box) as totalBox FROM <your_table_name> GROUP BY indateDate;

你很接近。
只需修改您的查询并使用 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);

您可以设置日期格式以仅显示年份和月份。您还可以对结果进行分组,并将其与分组行的总和相结合。

格式化 MySQL 中的日期值(即日期、日期时间)您可以使用 formatters 将日期格式化为特定格式。

看看这个 fiddle

尝试:

 SELECT concat(YEAR(indate), '-', MONTH(indate)), sum(box)
 FROM
 reporttable
 GROUP BY YEAR(indate), MONTH(indate) ASC