日期累计新增
-----------
01  18    4
02  24  6
03  42  18
04  0  0
05  0   0
------------假如这是四月的表,上个月是14,01号的累计是上个月的14加今天新增的4,就是今天一号累计18,累计只考虑上个月的累计数,此前不考虑
02号就是昨天的累计加今天的新增如何写查询

解决方案 »

  1.   

    Create Table TEST
    (日期 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
    */
      

  2.   

    查询每天的累计总量现有如下结构的表:
    编号----产品名称----产量(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 行)