create view v(id, amt, trx)
as
select 1, 100, 'PR' from dual union all
select 2, 100, 'PR' from dual union all
select 3, 50, 'PY' from dual union all
select 4, 100, 'PR' from dual union all
select 5, 50, 'PY' from dual;
select case when v1.trx = 'PY' then 'payment' else 'purchase' end as trx_type,
v1.amt,
(select sum(case when v2.trx = 'PY' then -v2.amt else v2.amt end) from v v2 where v2.id <= v1.id) as blance
from v v1;
TRX_TYPE AMT BLANCE
-------- ---------- ----------
purchase 100 100
purchase 100 200
payment 50 150
purchase 100 250
payment 50 200
本文介绍了一个使用SQL创建视图的方法,并展示了如何通过累计计算实现余额更新的过程。该示例涉及基本的SQL语法,包括UNION ALL操作及CASE WHEN条件判断。
20

被折叠的 条评论
为什么被折叠?



