Question

I had this question asked of me on a job interview, and I can't seem to find the right way to do this. I'm just looking for the answer so if it comes up again another time I'll have more of an idea of what should be done.

Table A has 3 columns. ID, CustomerName, and Amount

Values (1, "Someone", 20000)

Table B has 3 Columns. CustID, Date, Payment. Values

(1, 1/1/2014, 100)
(1, 2/1/2014, 200)
(1, 3/1/2014, 500)
(1, 4/1/2014, 175)

What they want to know is after each payment has been made, what is the remaining balance on the account. So the output would be:

Customer Name, Payment Amount, Remaining Balance

For each payment.

How would someone go about accomplishing this since I've stumped all of my database friends and can't seem to find the info on google....

Was it helpful?

Solution

In databases that support the ANSI standard cumulative sum syntax, you would simply do:

select a.CustomerName, b.Payment,
       (a.amount - sum(b.payment) over (partition by a.id order by date)) as RemainingBalance
from tablea a left outer join
     tableb b
     on a.id = b.id;

In other databases, I would use a correlated subquery.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top