不知道如何表达。假设我有一个选择返回此。
Name, month, amount
John, June, 5
John, July,6
John, July, 3
John August, 10
我想汇总并报告每个月的期初余额。
姓名、月份、期初余额。
john, may, 0
john, june, 0
john, july, 5
john, august, 14
john, September, 24
我可以在 Excel 中使用单元格公式执行此操作,但如何在 SQL 中执行此操作而不将值存储在某处?我有另一个包含财务月份的表,我可以进行左外连接,以便报告所有月份,只是不确定如何在 sql 中汇总前几个月的数据。
最佳答案
select
name
, month
, (select sum(balance) from mytable
where mytable.month < m.month and mytable.name = m.name) as starting_balance
from mytable m
group by name, month
这不像窗口函数那么好,但由于它们因数据库而异,因此您需要告诉我们您正在使用哪个系统。
而且它是一个内联子查询,性能不是很好。但至少很容易理解发生了什么!
关于sql - TSQL 运行总计根据前一行的总和进行聚合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12856406/