select T.id,(select sum(amount) from TABLE1 where id<T.id ) as AMOUNT  from TABLE1 T

解决方案 »

  1.   

    create function f_keke(
    @id varchar(5)
    )returns varchar(50)
    as
    begin
    declare @r varchar(50)
    set @r=''
    select @r=@r+'+'+id from table1 where id<=@id
    set @r=stuff(@r,1,1,'')
    return(@r)
    endselect id=dbo.f_keke(id),amount=(select sum(amount) from table1 where id<=T.id ) from table1 T
      

  2.   

    我讲得不够清楚,不好意思,我table2的表的组合是随意的,不是有顺序的。
      

  3.   

    你先运行上面的,建立好函数
    然后执行下面那条SQL语句!
      

  4.   

    table2的表的组合是随意的!
    -----------------------
    举个例子,是相加的组合随意?
      

  5.   

    是啊,例如table2可以是这样的结果:
    ID    AMOUNT
    A+B    46.5
    A+B+C  54.2
    A+C    19.7
    B+C    42.2
      

  6.   

    如果table2的id列是给定的,会不会容易点?