--期初數據
DECLARE @stock TABLE(id int,num decimal(10,2))
INSERT @stock SELECT 1,100
UNION? ALL??? SELECT 3,500
UNION? ALL??? SELECT 4,800
--入庫數據
DECLARE @in TABLE(id int,num decimal(10,2))
INSERT @in SELECT 1,100
UNION? ALL SELECT 1,80
UNION? ALL SELECT 2,800
--出庫數據
DECLARE @out TABLE(id int,num decimal(10,2))
INSERT @out SELECT 2,100
UNION? ALL? SELECT 3,100
UNION? ALL? SELECT 3,200
--統計
SELECT id,
?stock_opening=SUM(stock_opening),
?stock_in=SUM(stock_in),
?stock_out=SUM(stock_out),
?stock_closing=SUM(stock_closing)
FROM(
?SELECT id,stock_opening=num,stock_in=0,stock_out=0,stock_closing=num
?FROM @stock
?UNION ALL
?SELECT id,stock_opening=0,stock_in=num,stock_out=0,stock_closing=num
?FROM @in
?UNION ALL
?SELECT id,stock_opening=0,stock_in=0,stock_out=num,stock_closing=-num
?FROM @out
)a GROUP BY id
/*--結果
id????????? stock_opening??? stock_in???? stock_out????? stock_closing
---------------- ----------------------- ----------------- -------------------- --------------------
1?????????? 100.00?????????? 180.00?????? .00????????? 280.00
2?????????? .00????????????? 800.00?????? 100.00?????? 700.00
3?????????? 500.00?????????? .00????????? 300.00?????? 200.00
4?????????? 800.00?????????? .00????????? .00????????? 800.00
--*/
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
