I have data like this
id cp_id amount_a amount_b
CCP1 TTP01 10.000.000 2.000.000
CCP1 TTP02 10.000.000 3.000.000
CCP1 TTP03 10.000.000 1.000.000
CCP1 TTP04 10.000.000 500.000
CCP2 TTP05 5.000.000 1.000.000
CCP2 TTP06 5.000.000 2.000.000
CCP3 TTP07 1.000.000 500.000
I want the the result data add one column of running_balance like this below
id amount_a amount_b running_balance
CCP1 10.000.000 2.000.000 8.000.000
CCP1 10.000.000 3.000.000 5.000.000
CCP1 10.000.000 1.000.000 4.000.000
CCP1 10.000.000 500.000 3.500.000
CCP2 5.000.000 1.000.000 4.000.000
CCP2 5.000.000 2.000.000 2.000.000
CCP3 1.000.000 500.000 500.000
I made already the query like this
/* Formatted on 1/26/2017 2:50:06 PM (QP5 v5.115.810.9015) */
SELECT B.NO_KLAIM AS id,
a.amount AS amount_a,
B.AMOUNT AS amount_b,
SUM (A.AMOUNT) OVER (ORDER BY B.AMOUNT ROWS UNBOUNDED PRECEDING)
AS running_balance
FROM TRX_TITIPAN A
JOIN
TRX_KLAIM_TITIPAN B
ON A.NO_RESI_TITIPAN = B.NO_RESI_TITIPAN
GROUP BY B.NO_KLAIM, B.AMOUNT, a.amount
but the result not calculated amount_a, just running total for amount_b.
**Updated: I make already update on my query.
/* Formatted on 1/26/2017 2:50:06 PM (QP5 v5.115.810.9015) */
SELECT B.NO_KLAIM AS id,
a.amount AS amount_a,
B.AMOUNT AS amount_b,
NVL (TITIP.AMOUNT, 0)
- SUM (NVL (KLAIM.AMOUNT, 0))
OVER (PARTITION BY TITIP.AMOUNT
ORDER BY TITIP.NO_RESI_TITIPAN,
KLAIM.NO_KLAIM,
TITIP.AMOUNT,
KLAIM.AMOUNT asc
ROWS UNBOUNDED PRECEDING) as running_balance
FROM TRX_TITIPAN A
JOIN
TRX_KLAIM_TITIPAN B
ON A.NO_RESI_TITIPAN = B.NO_RESI_TITIPAN
GROUP BY B.NO_KLAIM, B.AMOUNT, a.amount
the running balance is working right when using WHERE id= .... condition, with specific id. While i delete WHERE id= .... condition it's going wrong.
Partition by
in an analytic function works in the same way thatGroup by
does in an aggregate query - it determines the groups of rows that you want the analytic function to work across. – Misbegotten