源表:
num1 num2 date
100 300 2008-4-2
200 500 2008-4-3
300 800 2008-4-4
结果集:
num1 num2 date
100 300 2008-4-2
300 800 2008-4-3
600 1600 2008-4-4
解决方法一:
create table #T (num1 int,num2 int,date datetime)
insert into #T
select 100,300,'2008-4-2' union all
select 200,500,'2008-4-3' union all
select 300,800,'2008-4-4'
select
num1=(select sum(num1) from #T where date<=t.date),
num2=(select sum(num2) from #T where date<=t.date),
date
from #T as t
drop table #T
解决方法二:
create table #tb(num1 int,num2 int,date datetime)
insert #tb select 100,300,'2008-4-2'
insert #tb select 200,500,'2008-4-3'
insert #tb select 300,800,'2008-4-4'
insert #tb select 400,1000,'2008-4-4'
declare @num1 int,@num2 int
select @num1 = 0,@num2=0
update #tb set
num1 = @num1,
num2 = @num2,
@num1= @num1+num1,
@num2= @num2+num2
select * from #tb
drop table #tb