读书人

sql数目字运算

发布时间: 2013-04-20 19:43:01 作者: rapoo

sql数字运算
create table #a(id int,item int,a1 int)
insert into #a values(1,100,80)
insert into #a values(2,100,70)
insert into #a values(3,100,60)
insert into #a values(4,200,30)
insert into #a values(5,200,8)
insert into #a values(6,250,230)

select * from #a

我要得到的结果为如下

id item a1 jieguo
110080 80
210070 150
310060 210
420030 30
52008 38
6250230 230

运算逻辑
item 相同,id 有比现在小的,就把a1 累加

[解决办法]

SELECT A.id,a.item,a.a1,SUM(b.a1) AS jieguo
FROM #a A
INNER JOIN #a B ON A.item = B.item AND A.a1<=B.a1
GROUP BY a.id,a.item,a.a1

/*
iditema1jieguo
11008080
210070150
310060210
42003030
5200838
6250230230*/

读书人网 >SQL Server

热点推荐