原始数据
CREATE OR REPLACE VIEW v_t
AS SELECT 1000 AS ID,'预缴费用' AS NAME,30000 AS money FROM dual
UNION ALL SELECT 7782 AS ID,'支出1' AS NAME,3450 AS money FROM dual
UNION ALL SELECT 7839 AS ID,'支出2' AS NAME,6000 AS money FROM dual
UNION ALL SELECT 7934 AS ID,'支出3' AS NAME,2300 AS money FROM dual;
SELECT * FROM v_t;
列出流水账每一笔钱支出后的余额
SELECT a.*,SUM(CASE WHEN id=1000 THEN a.money ELSE -a.money END) OVER(ORDER BY ID) AS remaining
FROM v_t a ORDER BY ID;
备注 : Oracle查询优化改写 6.3 , 图片库 160930_8 , 160930_9