Oracle(10) SQL: calculating final sum depending on two field
Posted
by Zsolt Botykai
on Stack Overflow
See other posts from Stack Overflow
or by Zsolt Botykai
Published on 2010-04-09T13:30:14Z
Indexed on
2010/04/09
13:33 UTC
Read the original article
Hit count: 444
First the disclaimer: I never learnt any programming in school, and just have to deal with various SQL problems (too).
So now I've got two tables, TABLE1:
ACCNO BAL1 BAL2
11111 20 10
And TABLE2 (which has the ACCNO key, of course) related rows to '11111':
DATENUM AMT
1 -5
2 -10
3 8
4 -23
5 100
6 -120
7 140
Now I have to find the new BAL1 and BAL2 using the following rules:
- BAL1 AMT must be substracted from or added to BAL1 until BAL1 == 0 (and BAL2 > 0)
- if BAL1 reaches 0 then the (if any) remainder of BAL1 must be substracted from BAL2
- if BAL2 reaches 0 too, from then only BAL1 should be modified.
So using the above data:
DATENUM AMT BAL1 BAL2
0 0 20 10 /*starting record*/
1 -5 15 10
2 -10 5 10
3 8 13 10
4 -23 0 0
5 100 100 0
6 -120 -20 0
7 140 20 0
And I need the last two BAL1 and BAL2.
How can I calculate them using (Oracle 10) SQL?
© Stack Overflow or respective owner