不知道怎么说这个。假设我选择了这个。
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的前几个月聚合。
答案 0 :(得分:2)
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
这不如窗口函数好,但由于它们因数据库而异,因此您需要告诉我们您正在使用哪个系统。
这是一个内联子查询,效率不高。但至少很容易理解发生了什么!
答案 1 :(得分:0)
使用像这样的分组
SELECT NAME, MONTH , SUM(Balance) FROM table GROUP BY NAME, MONTH
答案 2 :(得分:0)
假设您的月份表示为日期,这将为您提供运行总计。
select t1.name, t1.month, sum(t2.amount)
from yourtable t1
left join yourtable t2
on t1.name = t2.name
and t1.month>t2.month
group by t1.name, t1.month