首页 新闻 会员 周边 捐助

大神!这种统计SQL ,怎么写啊。

0
悬赏园豆:80 [待解决问题]

现在的表结果:
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
舒某人的主页 舒某人 | 初学一级 | 园豆:122
提问于:2015-11-27 21:51
< >
分享
所有回答(8)
0

题主是要SQL累加相关的?什么数据库?

ORACLE和SQL SERVER的这个帖子里面都有 http://www.itpub.net/thread-893165-1-1.html

之奇一昂 | 园豆:1421 (小虾三级) | 2015-11-27 22:59
0

目测只能循环计算了。

爱编程的大叔 | 园豆:30844 (高人七级) | 2015-11-28 09:16
0

好奇怪的需求啊,这些sql也太麻烦了,不然在编程语言里实现

会长 | 园豆:12463 (专家六级) | 2015-11-28 10:28
0

我只想说这么简单的循环逻辑为毛要用sql去实现?代码是干嘛用的、?

茂茂 | 园豆:2894 (老鸟四级) | 2015-11-28 14:52
1

  属于累加范畴,使用自连接可以解决

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

悦光阴 | 园豆:2251 (老鸟四级) | 2015-11-29 16:29
0
small_123 | 园豆:202 (菜鸟二级) | 2015-12-07 13:24
0

简单至极,一条sql语句就搞定的事!初始程序员,签定完毕

hokers | 园豆:201 (菜鸟二级) | 2016-01-17 17:05
0

数据量不多的话游标搞定

chengeng | 园豆:294 (菜鸟二级) | 2016-02-14 13:20
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册