34,870
社区成员




create table tes(flevel int,famount int)
insert into tes select 1,1200
insert into tes select 1,0
insert into tes select 2,125
insert into tes select 2,0
insert into tes select 3,1250
insert into tes select 3,625
insert into tes select 2,125
insert into tes select 1,0
insert into tes select 2,0
insert into tes select 3,125
insert into tes select 3,125
insert into tes select 2,625
select flevel,case famount when 0 then
(select sum(famount) from tes where flevel>=a.flevel+1) else famount end [famount]
from tes a
--结果:
flevel famount
1 3000
2 125
2 2125
3 1250
3 625
2 125
1 3000
2 2125
3 125
3 125
2 625
按照我理解的是对的。楼主。哪不对了呢?
楼主那个126变成125不知道是怎么回事。看下面的语句是否可以吧。。
create table tes(flevel int,famount int)
insert into tes select 1,1200
insert into tes select 1,0
insert into tes select 2,125
insert into tes select 2,0
insert into tes select 3,1250
insert into tes select 3,625
insert into tes select 2,125
select flevel,case famount when 0 then
(select sum(famount) from tes where flevel>=a.flevel+1) else famount end [famount]
from tes a