[英]2 Mysql table sum column Group and subruction pls
有
1.表是。
MgName MgModel MgIn
============================
CPU | i5 | 1
RAM | 8GB | 1
BOARD | ASUS | 1
CPU | i5 | 2
RAM | 4GB | 1
RAM | 8GB | 1
CPU | i7 | 1
2.表是。
McName McModel McOut
============================
CPU | i5 | 1
RAM | 8GB | 3
=
StckName StckModel StckPce
============================
CPU | i5 | 2
RAM | 8GB | -1
BOARD | ASUS | 1
CPU | i7 | 1
RAM | 4GB | 1
您可以簡單地使用UNION
和GROUP BY
子句來代替加入:
SELECT t.StckName ,t.StckModel,SUM(t.Mg) as StckPce
FROM(SELECT MgName as StckName ,MgModel,MgIn as mg as StckModel
FROM Table1
UNION ALL
SELECT McName ,McModel,mcOut*-1
FROM Table2) t
GROUP BY t.StckName ,t.StckModel
這是查詢:
SELECT
t.MgName AS StckName,
t.MgModel AS StckModel,
t.summedValue - IFNULL(Table2.McOut,0) AS StckPce
FROM
(
SELECT
MgName,
MgModel,
SUM(MgIn) summedValue
FROM Table1
GROUP BY MgName,MgModel
) t
LEFT JOIN Table2 ON t.MgName = Table2.McName AND t.MgModel = Table2.McModel;
內部查詢獲取每個<MgName,MgModel>
對的<MgName,MgModel>
。 然后,此結果與Table2
之間的LEFT JOIN
將為每個<MgName,MgModel>
對獲取相應的McOut
值(如果Table2
存在)。
最終, summed value
與McOut
將McOut
最終結果。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.