继续:SQL语句逐层累计数量
A B
a 1
a 2
a 3
a 10
要得到结果
a 1
a 3
a 6
a 16
已有网友解决如下:
select IDENTITY(int, 1, 1) as id,* into #tbl from tbl
select A,B=(Select sum(B) from tbl where A=x.A and id<=x.id)
from #tbl as x
如果变下
A B
a 1
a 2
a 3
b 20 *
b 9
c 9
c 6
要得到结果
a 1
a 3
a 6
b 20
b 29
c 9
c 15
要分组解决,在不用游标,单用语句不知有何好办法