AAAA    1    
AAAA    2    
bbbb    2
bbbb    3
aaaa    4
得到的结果是
名称    数量   累计
aaaa    1      1
aaaa    2      3
bbbb    2      2
bbbb    2      5
aaaa    4      7

解决方案 »

  1.   

    如果只有这两个字段,要用临时表如果有id或者其他能为仪表是一条记录的字段:select 名称,数量,(select sum(数量) from tablename where 名称=a.名称 and id<=a.id) as 累计
    from tablename a
    order by id
      

  2.   

    declare @t table(name varchar(10),val int)
    insert @t select 'aaaa',    1   
    insert @t select 'aaaa',    2    
    insert @t select  'bbbb',    2
    insert @t select  'bbbb',    3
    insert @t select  'aaaa',    4select id=identity(int,1,1),a.* into gg from @t aselect name,val,sumvalue=(select sum(val) from gg a where a.name=b.name and a.id<=b.id) from gg b
    drop table gg-----------------------------------
    name     val    sumvalue
    aaaa 1 1
    aaaa 2 3
    bbbb 2 2
    bbbb 3 5
    aaaa 4 7