一个表中的SQL聚合函数

一个表中的SQL聚合函数,sql,sql-server,aggregate,Sql,Sql Server,Aggregate,所以我有一个表,有4个字段=第一个是日期,第二个是第一次余额,第三个是突变,第四个是结束余额 下面的图像有2个表,第一个表是原始表,我必须进行查询,以便它可以像第二个表一样显示出来 *SALDO AWAL昨天获得了SALDO PENUTUPAN的数据 *SALDO PENUTUPAN正在从SALDO AWAL+MUTASI获取数据 依此类推,直到数据看起来像第二个表 上面是我的示例代码,但我认为它工作不太好,所以我需要大家的帮助,谢谢你如果tanggal是唯一的,你可以使用它: with ct

所以我有一个表,有4个字段=第一个是日期,第二个是第一次余额,第三个是突变,第四个是结束余额

下面的图像有2个表,第一个表是原始表,我必须进行查询,以便它可以像第二个表一样显示出来

*SALDO AWAL昨天获得了SALDO PENUTUPAN的数据

*SALDO PENUTUPAN正在从SALDO AWAL+MUTASI获取数据

依此类推,直到数据看起来像第二个表


上面是我的示例代码,但我认为它工作不太好,所以我需要大家的帮助,谢谢你

如果
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

表中是否有id列?tanggal是独一无二的吗?另外,您需要更新表还是用第二种方法查询数据?没有ID,只有一个表,有4个字段,使用update语句查询数据tanggal列是否唯一?是的,它是一个日期,必须填写后天。另外,使用update查询数据是什么意思?你想选择还是更新?哇!!!伟大的你怎么能这么聪明????非常感谢你!!!!现在成功了!!thx-XD
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