数据表(savedata),其关系模式为(NO,BUSINESSNAME,MONEY),其语义名称和数据类型与约束关系描述如下表所示顺序号          业务名称          金额
Number(10),PK Varchar2(50) Number(10,2)
NOT NULL NOT NULL NOT NULL
 怎么用“最简单”的方法实现如下每行带累计金额输出的数据表单???    顺序号     业务名称       金额       累计余额
         1     存入         100.00          100.00
         2     存入         300.00          400.00
         3     存入         800.00         1200.00
         4     取出         150.00         1050.00

解决方案 »

  1.   

    select no,BUSINESSNAME,MONEY,sum(MONEY)over(order by no) from savedata
      

  2.   

    SQL>   select no,BUSINESSNAME,MONEY,sum(case when BUSINESSNAME='存入' then MONEY else -MONEY end)over(order by no) from savedata;
     
            NO BUSINESSNAME                                                                            MONEY   SUM(CASEWHENBUSINESSNAME='存入
    ---------- -------------------------------------------------------------------------------- ------------ ------------------------------
             1 存入                                                                                   100.00                            100
             2 存入                                                                                   300.00                            400
             3 存入                                                                                   800.00                           1200
             4 取出                                                                                   150.00                           1050
     
    SQL> 
      

  3.   

    select sequence as "顺序号",bizName as "业务名称",money as "金额" sum(money) over(order by sequence)  as "累计金额"  from savedata.sum(money) over(order by sequence) :意思是说按照顺序号进行累计金额。