add batch remove batch split batch comment selection show hidden batches hide batch highlight batch
db<>fiddle
donate feedback about
By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
CREATE TABLE table_name ( "Date", credit, debit ) AS
SELECT Date '2021-01-01', 1000, 0 FROM DUAL UNION ALL
SELECT Date '2021-01-02', 0, 500 FROM DUAL UNION ALL
SELECT Date '2021-01-03', 0, 700 FROM DUAL;
3 rows affected
SELECT "Date",
credit,
debit,
SUM(credit-debit) OVER (ORDER BY "Date") AS balance
FROM table_name
Date CREDIT DEBIT BALANCE
01-JAN-21 1000 0 1000
02-JAN-21 0 500 500
03-JAN-21 0 700 -200
DROP TABLE table_name;
CREATE TABLE table_name ( "Date", account_balance ) AS
SELECT Date '2021-01-01', +1000 FROM DUAL UNION ALL
SELECT Date '2021-01-02', + 500 FROM DUAL UNION ALL
SELECT Date '2021-01-03', - 200 FROM DUAL;
3 rows affected
SELECT "Date",
GREATEST(
account_balance - LAG(account_balance, 1, 0) OVER (ORDER BY "Date"),
0
) AS credit,
GREATEST(
LAG(account_balance, 1, 0) OVER (ORDER BY "Date") - account_balance,
0
) AS debit,
account_balance
FROM table_name
Date CREDIT DEBIT ACCOUNT_BALANCE
01-JAN-21 1000 0 1000
02-JAN-21 0 500 500
03-JAN-21 0 700 -200