declare @t table ( id int, SomeNumt int )
insert into @t select 1,10 union select 2,12 union select 3,3 union select 4,15 union select 5,23 select * from @t
上面的选择返回我以下。
id SomeNumt 1 10 2 12 3 3 4 15 5 23
我如何获得以下信息:
id srome CumSrome 1 10 10 2 12 22 3 3 25 4 15 40 5 23 63
select t1.id, t1.SomeNumt, SUM(t2.SomeNumt) as sum from @t t1 inner join @t t2 on t1.id >= t2.id group by t1.id, t1.SomeNumt order by t1.id
sqlfiddle
输出
| ID | SOMENUMT | SUM | ----------------------- | 1 | 10 | 10 | | 2 | 12 | 22 | | 3 | 3 | 25 | | 4 | 15 | 40 | | 5 | 23 | 63 |
编辑: 这是一个通用的解决方案,适用于大多数数据库平台。当您的特定平台(例如,gareth’s)有更好的解决方案时,请使用它!