簡體   English   中英

有沒有一種方法可以在mysql視圖中計算余額?

[英]is there a way to calculate balance in mysql view?

在此處輸入圖片說明

我想從mysql計算余額

200  
270 
295 
285 
270 
250 

我嘗試但不工作

SELECT `id`, `in`, `out`,balance
FROM (SELECT t.*,
         @n := IF(@g <> id, 0, @n) + COALESCE(in,0) - COALESCE(out, 0) balance,
         @g := id 
      FROM product_trans t,
          (SELECT @n := 0) n,
          (SELECT @g := 0) g ORDER BY id ) q
SELECT t1.id, SUM(t2.`in` - t2.`out`) AS balance
FROM tab t1
JOIN tab t2
  ON t2.id <= t1.id
GROUP BY t1.id
ORDER BY t1.id;

SqlFiddleDemo

輸出:

╔═════╦═════════╗
║ id  ║ balance ║
╠═════╬═════════╣
║  1  ║     200 ║
║  2  ║     270 ║
║  3  ║     295 ║
║  4  ║     285 ║
║  5  ║     270 ║
║  6  ║     250 ║
╚═════╩═════════╝

您還可以使用變量來計算運行總和:

小提琴: http ://sqlfiddle.com/#!9/edf9d/3/0

set @runsum:=0;

select id, (@runsum := @runsum + `in` - `out`) as runner
  from product_trans
order by id;

在除MySQL以外的大多數數據庫中,例如Oracle或SQL Server,您將改用分析函數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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