现在的表结果:
Id Num OrderIndex
A1 3 1
A2 2 2
A3 3 3
B1 1 4
B2 4 5
想实现的结果:
Id Num
A1 3
A2 5
A3 8
B1 9
B2 13
统计后的结果:
根据OrderIndex排序,
每一行的Num的值为 小于等于当前行的OrderIndex的所有Num汇总。
题主是要SQL累加相关的?什么数据库?
ORACLE和SQL SERVER的这个帖子里面都有 http://www.itpub.net/thread-893165-1-1.html
目测只能循环计算了。
好奇怪的需求啊,这些sql也太麻烦了,不然在编程语言里实现
我只想说这么简单的循环逻辑为毛要用sql去实现?代码是干嘛用的、?
属于累加范畴,使用自连接可以解决
create table dbo.dt ( Id char(2), num int, idxorder int ) insert into dbo.dt values('A1',2,1),('A2',2,2),('A3',2,3), ('B1',2,4),('B2',2,5),('C1',2,6) SELECT a.Id, sum(b.num) as num from dbo.dt a inner join dbo.dt b on a.idxorder>=b.idxorder group by a.Id
简单至极,一条sql语句就搞定的事!初始程序员,签定完毕
数据量不多的话游标搞定