如下表A:
  id   单位    金额   标志   日期   
   1    A   100    存入  2008-10-1
   2    B     150    抵用   2009-01-2
   3    C     100    存入   2009-02-2
表B
  id   单位    余额   日期
   1    A   100    2008-11
   2    B     0     2008-11
   3    C     0     2008-11
如何在b表中生成本月的余额表。本月余额=上月余额+本月存入-本月抵用

解决方案 »

  1.   

    select c.id, c.单位, sum(c.real_money) 金额, '2008-11' 日期
      from (select a.*, decode(a.标志, '抵用', 0 - a.金额, a.金额) real_money
              from a
             where a.日期 < to_date('2008-11-1 00:00:00', 'yyyy-mm-dd hh24:mi:ss')) c
     group by c.id, c.单位;
      

  2.   

    谢谢伟伟,有启发了,但不能满足我要求。我的意思是把每个单位按月结余额再存入B表中,比如A单位11月的余额=10月余额+11月存入-11月抵用然后再把11月的余额存入B表,然后再用B表11月余额求12月余额再存入B表。
      

  3.   

    SELECT     Acc_No,    Acc_Id, Acc_Date, In_Money, Out_Money,
                                  (SELECT         SUM(In_Money) - SUM(out_Money)
                                    FROM              Db_AccBook
                                    WHERE          (Acc_id <= t.Acc_id)) AS Today_money
    FROM             Db_Accbook t
    WHERE         (Acc_Date >=
                                  (SELECT         MAX(Acc_Date)
                                    FROM              Db_AccBookCheck) )  AND (@Acc_No=Acc_No)ORDER BY  Acc_No,Acc_Date, Acc_Id
    这是我自己表写的  目的差不多  给你参考下