簡體   English   中英

2 Mysql表的總和列Group和subrution pls

[英]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
  1. 我想要相同的組名和相同的模型SUM,然后輸入MgIn-MgOut

=

StckName  StckModel  StckPce 
============================
 CPU    |   i5     |   2
 RAM    |   8GB    |  -1 
 BOARD  |   ASUS   |   1
 CPU    |   i7     |   1
 RAM    |   4GB    |   1

您可以簡單地使用UNIONGROUP 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 valueMcOutMcOut最終結果。

暫無
暫無

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

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