簡體   English   中英

在視圖mysql中計算余額

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM