源表:
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
本文介绍两种使用SQL实现数据累加的方法。一种是通过子查询进行累加,另一种是利用变量更新的方式完成累加操作。这两种方法都能有效地解决数据按日期累计的问题。

3345

被折叠的 条评论
为什么被折叠?



