Preciso fazer uma soma de um resultado com base na conta e na data da transação. Tenho o seguinte resultado:
ACCOUNT_ID TRANSACTION_DATE AMOUNT
581 05-SEP-23 309.32
581 08-SEP-23 1863.76
581 15-SEP-23 0.26
581 21-SEP-23 23.17
with transaction_tbl
AS (
select 581 ACCOUNT_ID, TO_DATE('05-09-2023', 'DD-MM-YYYY') TRANSACTION_DATE, 309.32 AMOUNT from dual
union all
select 581 ACCOUNT_ID, TO_DATE('08-09-2023', 'DD-MM-YYYY') TRANSACTION_DATE, 1863.76 AMOUNT from dual
union all
select 581 ACCOUNT_ID, TO_DATE('15-09-2023', 'DD-MM-YYYY') TRANSACTION_DATE, 0.26 AMOUNT from dual
union all
select 581 ACCOUNT_ID, TO_DATE('21-09-2023', 'DD-MM-YYYY') TRANSACTION_DATE, 23.17 AMOUNT from dual
)
SELECT
ACCOUNT_ID,TRANSACTION_DATE,AMOUNT
FROM
transaction_tbl
--where TRANSACTION_DATE < asofdate ;
Tenho o seguinte caso que não consegui processar.
Caso em que TRANSACTION_DATE < asofdate TO_DATE('06-09-2023', 'DD-MM-AAAA') resultado esperado;
581 05-SEP-23 309.32
Caso em que TRANSACTION_DATE < asofdate TO_DATE('09-09-2023', 'DD-MM-AAAA') resultado esperado;
581 08-SEP-23 2173.08
Caso em que TRANSACTION_DATE < asofdate TO_DATE('18-09-2023', 'DD-MM-AAAA') resultado esperado;
581 15-SEP-23 2173.34
Caso em que TRANSACTION_DATE < asofdate TO_DATE('22-09-2023', 'DD-MM-AAAA') resultado esperado;
581 21-SEP-23 2196.51
A ideia é que eu precise recalcular o resultado com base em dados anteriores para uma data que existe como uma transação.