[英]calculate balance in view mysql
我在mysql中有一個視圖,可以很好地工作並正確顯示結果。
SELECT m.`id_cuota`, m.`clv_cuota`, m.`debe`, m.`haber`,
(select sum(debe) - sum(haber)
from cuotas m2
where m2.id_cuota <= m.id_cuota
) as balance
FROM `cuotas` m
ORDER BY m.`id_cuota` DESC;
id_cuota clv_cuota debe haber balance
22 115 25.00 0.00 125.00
21 115 0.00 150.00 100.00
20 115 50.00 0.00 250.00
19 116 100.00 0.00 200.00
18 115 100.00 0.00 100.00
我想知道如何進行查詢,但結果例如。 “ clv_cuotas = 115”。 因此成為結果。
id_cuota clv_cuota debe haber balance
22 115 25.00 0.00 25.00
21 115 0.00 150.00 0.00
20 115 50.00 0.00 150.00
18 115 100.00 0.00 100.00
問題是,在不重做查詢本身的情況下,正在運行的總余額需要116才能獲得適當的余額,只有在計算出值之后,您才能刪除它們。 因此,包裝一個查詢,例如:
select PQ.*
from ( your existing query ) PQ
where PQ.clv_cuto = 115
這樣,內部行將基於所有clv_cuto值進行計算,並且僅事后自動排除。
注意:這應該顯示您希望從第一個查詢中獲得的適當余額,僅返回那115個條目。
為了回答/闡明您的需求,由於您只關心帳戶115的凈活動,因此只需在其中輸入where子句即可。 它需要同時應用於查詢的內部和外部。
SELECT m.`id_cuota`, m.`clv_cuota`, m.`debe`, m.`haber`,
(select sum(debe) - sum(haber)
from cuotas m2
where m2.id_cuota <= m.id_cuota
AND m2.clv_cuota = 115
) as balance
FROM `cuotas` m
WHERE m2.clv_cuota = 115
ORDER BY m.`id_cuota` DESC;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.