我有一个查询,它返回一个人支付的物品、该物品的价格和余额。我的问题是在某些情况下,一个人可能会为一件物品支付 2 次付款(先付款,然后再支付余额)。所以返回的表如下所示:
name | invoice_id| inv_date | item_id|item | pay_id | price | paid | balance |
---------|-----------|----------|--------|---------|--------|-------|------|---------|
John Doe| 581 | 2018-4-10| 10 |Transport| 1165 | 8100 | 5400 | 2700 |
John Doe| 581 | 2018-4-10| 10 |Transport| 1030 | 8100 | 2700 | 5400 |
John Doe| 581 | 2018-4-10| 25 |Insurance| 1165 | 24000 | 12000| 12000 |
John Doe| 581 | 2018-4-10| 25 |Insurance| 1030 | 24000 | 12000| 12000 |
---------|-----------|----------|--------|---------| -------|-------|------|---------|
从返回结果可以看出,每第二次付款的余额是不正确的。以第二次支付交通费为例,有前次支付,5400
当前支付是2700
这样(5400 + 2700 = 8100 )
,所以余额应该是0
。所以我的问题是如何为每件商品的每次后续付款退还适当的余额?
目前我正在退回balance
as(price - paid)
但对于后续付款,余额不正确。