所以我有一个包含4个字段的表=第1个是日期,第2个是第一个余额,第3个是突变,第4个是结束余额。
下面的图片有2个表,第一个表是原始表,我必须进行查询,以便它可以像第二个表一样显示。
* SALDO AWAL 正在获取 SALDO PENUTUPAN 的昨天数据
* SALDO PENUTUPAN 从 SALDO AWAL + MUTASI 获取数据
依此类推,直到数据看起来像第二个表
UPDATE TRANSAKSI SET SALDO_AWAL = (SELECT t2.SALDO_PENUTUPAN
FROM TRANSAKSI t2
WHERE t2.TANGGAL = '2015-10-10')where TANGGAL > '2015-10-10'
ABOVE是我的示例代码,但我认为它运行不正常,所以我需要你帮忙,谢谢你
答案 0 :(得分:1)
鉴于tanggal
是唯一的,您可以使用:
with cte(tanggal, saldo_awal, mutasi, saldo_penutupan) as (
select
tanggal,
lag(saldo_penutupan, 1, 0) over (order by tanggal) saldo_awal,
mutasi,
saldo_penutupan
from (
select
tanggal,
mutasi,
sum(mutasi) over (order by tanggal) saldo_penutupan
from TRANSAKSI
) t
)
update t1
set t1.saldo_awal = t2.saldo_awal,
t1.saldo_penutupan = t2.saldo_penutupan
from TRANSAKSI t1 join cte t2
on t1.tanggal = t2.tanggal