我发现我原来这么的菜,这条语句写不出来。
一个累加值的意思, id  value 
1  10 
2  20 
3  30 
4  40 那个select sum()就是算累加值,结果 
1  10 
2  30 
3  60 
4  100 select.....

解决方案 »

  1.   

    select id,[valuesum]=(select sum([value]) from tb where id<=t.id) from tb
      

  2.   

    select a.id,sum(b.[value]) as [value] from 表 a,表 b where a.id>=b.id group by a.id
      

  3.   

    if object_id('tb') is not null
      drop table tb
    go
    create table tb([id] varchar(10),[value] int)
    insert tb select 1,10
    insert tb select 2,20
    insert tb select 3,30
    insert tb select 4,40
    select id,[valuesum]=(select sum([value]) from tb where id<=t.id) from tb t/*
    id         valuesum
    ---------- -----------
    1          10
    2          30
    3          60
    4          100(4 行受影响)
    */
      

  4.   

    --就是一個子查詢啊,跟那邊case when 一個道理哦
    select id,(select sum(value) from T a where a.id<=T.id)
    from T
      

  5.   

    ---------------------------------
    --  Author: liangCK 小梁
    ---------------------------------
     
    --> 生成测试数据: @T
    DECLARE @T TABLE (id INT,value INT)
    INSERT INTO @T
    SELECT 1,10 UNION ALL
    SELECT 2,20 UNION ALL
    SELECT 3,30 UNION ALL
    SELECT 4,40--SQL查询如下:SELECT
        id,[sum]=(SELECT SUM(value) FROM @T WHERE id<=A.id)
    FROM @T AS A
    SELECT
        A.id,SUM(B.value) AS [sum]
    FROM @T AS A
        LEFT JOIN @T AS B
            ON A.id>=B.id
    GROUP BY A.id
      

  6.   


    SELECT
        id,[sum]=(SELECT SUM(value) FROM @T WHERE id<=A.id)
    FROM @T AS A
      

  7.   

    你的代码有点画蛇添足  SELECT 
        id,[sum]=(SELECT SUM(value) FROM @T WHERE id <=A.id) 
    FROM @T AS A 已经可以得到想要的结果啦
      

  8.   


    你的代码有点画蛇添足  SELECT 
        id,[sum]=(SELECT SUM(value) FROM @T WHERE id <=A.id) 
    FROM @T AS A 已经可以得到想要的结果啦