人が支払ったアイテム、そのアイテムの価格、および残高を返すクエリがあります。私の問題は、人が 1 つのアイテムに対して 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 |
---------|-----------|----------|--------|---------| -------|-------|------|---------|
返品結果からわかるように、2 回目の支払いごとの残高は正しくありません。たとえば、交通費の 2 回目の支払いを考えてみましょう。前の支払いは5400
で、現在の支払いは です。2700
したがって(5400 + 2700 = 8100 )
、残高は になります0
。それで私の質問は、各アイテムのその後の支払いごとに適切な残高を返すにはどうすればよいですか?
balance
現在、 as を返品しています(price - paid)
が、その後の支払いの残高が正しくありません。