上一行的实时余额加上这一行的金额,第一行的实时余额等于期初余额汇总加上金额取实时余额,sql该怎么写

解决方案 »

  1.   

    金额这列值是能够在数据库中直接取得的,期初余额可以根据查询时间和用户得到,实际余额是通过前面两个数取得的。
    请问实际余额这列怎么用sql获得:第一行的实际余额 = 期初余额+第一行的金额其余行的实际余额 = 上一行的实时余额+该行的金额
      

  2.   

    实际余额 = lag(实际余额,1,期初余额) + 金额
      

  3.   

    select 金额, 金额+lag(实际余额,1,期初余额) over(ordre by 类型) from tabname
      

  4.   

    --没测试,上面的不对,直接汇总金额就可以了
    select 金额, 期初余额+sum(金额)over(ordre by 类型 rows between unbounded preceding and current row ) from tabname
      

  5.   

    这个意思???create table tb (类型 varchar2(10), 金额 number);
    insert into tb values ('订单1',200);
    insert into tb values ('订单2',300);
    insert into tb values ('订单3',-100);select 类型,金额,100+sum(金额) over (order by 类型) 实时金额 from tb;
    /*
    类型             金额   实时金额
    ---------- ---------- ----------
    订单1             200        300
    订单2             300        600
    订单3            -100        500
    */drop table tb;