日期累计新增
-----------
01 18 4
02 24 6
03 42 18
04 0 0
05 0 0
------------假如这是四月的表,上个月是14,01号的累计是上个月的14加今天新增的4,就是今天一号累计18,累计只考虑上个月的累计数,此前不考虑
02号就是昨天的累计加今天的新增如何写查询
-----------
01 18 4
02 24 6
03 42 18
04 0 0
05 0 0
------------假如这是四月的表,上个月是14,01号的累计是上个月的14加今天新增的4,就是今天一号累计18,累计只考虑上个月的累计数,此前不考虑
02号就是昨天的累计加今天的新增如何写查询
(日期 Char(2),
累计 Int,
新增 Int)
Insert TEST Select '01', 0, 4
Union All Select '02', 0, 6
Union All Select '03', 0, 18
Union All Select '04', 0, 0
Union All Select '05', 0, 0
GO
Update
A
Set
累计 = (Select SUM(新增) From TEST Where 日期 <= A.日期) + 14
From
TEST ASelect * From TEST
GO
Drop Table TEST
--Result
/*
日期 累计 新增
01 18 4
02 24 6
03 42 18
04 42 0
05 42 0
*/
编号----产品名称----产量(int)----日期(varchar)
1 ----某产品1 ----100 ----20060922
2 ----某产品1 ----130 ----20060923
3 ----某产品2 ----104 ----20060924
5 ----某产品1 ----100 ----20060925
7 ----某产品1 ----200 ----20060926
.
.
.
现在要求查询每天的累计产量如:
20060923的累计产量就为20060922的100+20060923的130=230.
20060924的累计产量就为230+104=334,
20060925的累计产量为334+100=434...
请问该如何查询?
create table #a(
[id] [char] (10),
[proname] [char] (10),
[output] [int],
[dt] [datetime]
)insert into #a(id,proname,output,dt) values('1','某产品1',100,'2006-09-22')
insert into #a(id,proname,output,dt) values('2','某产品1',130,'2006-09-23')
insert into #a(id,proname,output,dt) values('3','某产品2',104,'2006-09-24')
insert into #a(id,proname,output,dt) values('5','某产品1',100,'2006-09-25')
insert into #a(id,proname,output,dt) values('7','某产品1',200,'2006-09-26')select *,(select sum(output) from #a where dt<=b.dt) as '每日总量'
from #a b
order by dtdrop table #a
id proname output dt 每日总量
---------- ---------- ----------- ------------------------------------------------------ -----------
1 某产品1 100 2006-09-22 00:00:00.000 100
2 某产品1 130 2006-09-23 00:00:00.000 230
3 某产品2 104 2006-09-24 00:00:00.000 334
5 某产品1 100 2006-09-25 00:00:00.000 434
7 某产品1 200 2006-09-26 00:00:00.000 634(所影响的行数为 5 行)