我现在在写一仓库报表,需要从单据中取数,单据中只有发生数,现在需要一明细账,具体格式为发生数,余额,该余额需要统计,即如果有若干行数据的话,每行数据的发生数后,都要有余额,该余额为上一行数据的余额加上这一行的发生额,请问这样的语句应该怎么写,谢谢了。

解决方案 »

  1.   


    --类似这样:
    select 发生数,余额,统计=(select sum(余额) from 表名 where id<=a.id) from 表名
      

  2.   

    做子查询,
    declare @tb table (col int,col2 momey,col3 momey,col4 money)select t.col, t.col2,t.col3, t.col2- t.col3 - isnull( ( select sum(col2)-sum(col3) from @tb where col < t.col),0)
    from @tb t
      

  3.   

    不好意思,可能我没有表达清楚我的意思。
    id   famount     freamount
    1                 10000
    2     1000
    3     -500
    4     2000
    5    -1000请问下,这样的表格,freamount这列的数据列,第1行因为是期初数据,第2行应该显示11000,第3行应该显示10500,就是明细账一样,这列的余额有个动态计算,就是上一行的freamount的数据加上famount的数据,请问怎么处理,谢谢。