每个月汇总行sql

时间:2014-08-14 22:41:12

标签: sql sum

我正在尝试进行SQL查询但是在尝试12小时之后我决定打开一个主题,也许有人可以帮助我:

我的桌子是“交易”:

id | client_id |         date          | income |    
1  | 100       | 2014-07-14 10:25:06   | 100    |    
2  | 101       | 2014-07-11 20:25:06   | 200    |
3  | 102       | 2014-08-01 22:25:06   | 150    |
4  | 101       | 2014-08-01 22:25:06   | 300    |
5  | 101       | 2014-08-01 22:25:06   | 300    |

我需要计算每个月(1月,2月,3月......)所有“收入”的总和。

从上表中可以看出:

July: 300 EUR 
August: 750 EUR

有人可以帮我找到合适的SQL吗?

我需要用php打印它,我应该做什么代码? 真的,我需要你的帮助。

3 个答案:

答案 0 :(得分:0)

我不知道你正在使用什么SQL格式,我也没有在我面前的环境,但它会是这样的。

SELECT derivedTable.MonthDate, sum(derivedTable.income)
FROM
(
  SELECT FORMAT(inp.DATE, 'mmyy') as MonthDate, income FROM transactions
) derivedTable(MonthDate, income)
GROUP BY derivedTable.MonthDate

答案 1 :(得分:0)

您需要使用函数来截断日期和组。每个DBMS的此功能不同。在Oracle中,它将是这样的:

SELECT TRUNC(date,'YYYY-MON'), SUM(income) FROM table1
GROUP BY TRUNC(date,'YYYY-MON')

例如,在MySQL中,您可以使用DATE_FORMAT()

答案 2 :(得分:0)

试试这个:

SELECT DATEPART(MONTH,[DATE]) AS 'DATE', SUM(income) AS 'Sum' from #transactions
Group BY DATEPART(MONTH,[DATE])