我想回报按月汇总账户的余额,按帐户和月份分组。例如,给定一个交易表,看起来像这样:SQL查询按月返回分组列的总和,包括所有之前的日期
| date | account_id | trans_amount |
| 2012-01-01 | 1 | -2500 |
| 2012-01-01 | 2 | -2500 |
| 2016-01-01 | 1 | 5000 |
| 2016-01-01 | 2 | 5000 |
| 2016-02-01 | 1 | 7500 |
| 2016-02-01 | 2 | 7500 |
我想查询返回:
| month | year | account_id | balance |
| 01 | 2012 | 1 | -2500 |
| 01 | 2012 | 2 | -2500 |
| 01 | 2016 | 1 | 2500 |
| 01 | 2016 | 2 | 2500 |
| 02 | 2016 | 1 | 10000 |
| 02 | 2016 | 2 | 10000 |
我开始用这样的:
SELECT MONTH(date), YEAR(date), account_id, SUM(trans_amount)
FROM transactions
GROUP BY account_id, MONTH(date), YEAR(date);
当然,但在分组期间给出了变化,而不是包括期间之前的交易在内的余额。
其中'amount_cents'从何而来? – LONG
良好的捕获 - 应该是'trans_amount'。编辑。 – MattH