1
======================================
| | 入力タイプ | 支払い可能 | 金額 | pID |
======================================
| | 経費 | 10,000 | 5,000 | 1 |
--------------------------------------
| | 経費 | 10,000 | 5,000 | 1 |
--------------------------------------
| | 経費 | 10,000 | 5,000 | 2 |
--------------------------------------
| | デポジット | 5,000 | 4,000 | 1 |
--------------------------------------
| | デポジット | 15,000 | 10,000 | 2 |
--------------------------------------

上記の表からこのような残高を表示したい場合:

==============================
| | pID | バランス1 | バランス2 |
==============================
| | 1 | 24,000 | 15,000 |
------------------------------
| | 2 | 20,000 | 20,000 |
------------------------------

pID 1 の計算:

支払 (諸費用) 10,000+10,000 + 金額 (預金) 4,000 = 残高 1 24,000

買掛金 (費用) 5,000+5,000 + 金額 (デポジット) 5,000 = 残高 2 15,000

pID 2 の計算:

支払 (費用) 10,000 + 金額 (デポジット) 10,000 = 残高 1 20,000

支払 (諸経費) 5,000 + 金額 (保証金) 15,000 = 残高 2 20,000

  • データを取得した後に計算を行う方法は?
4

1 に答える 1

1

InputType が 2 つの異なるステータスしか持てない場合、次のようなものを探していると思います。

select
  pID,
  sum(case when InputType='Expenses' then Payable else Amount end) as Balance1,
  sum(case when InputType='Expenses' then Amount else Payable end) as Balance2
from tbl
group by pID
于 2012-12-04T11:43:37.037 に答える