![](/img/trans.png)
[英]comparing sum of 2 column values in one table with another column value in second table sql server
[英]SQL sum column in one table where value in another table is 'S'
我有2張桌子:
[rolls]
tappi zone poids
N1001 101 502
N1002 102 502
N1003 103 1008
N1004 104 1008
[zones]
nom type
101 P
102 P
103 S
104 S
我想做的是如果'rolls..zone'具有類型'S'(根據表'zones')的總和'rolls'。'poids'
輸出應為2016(1008 + 1008)
SELECT SUM(t1.poids)
FROM rolls t1
INNER JOIN zones t2
ON t1.zone = t2.nom
WHERE t2.type = 'S'
我們可以在這里安全地進行INNER JOIN
,因為如果rolls
記錄與zones
任何內容都不匹配,那么我們知道該記錄不能是區域類型S
從卷中選擇SUM(rolls.poids)JOIN在rolls.zone = zone.nom WHERE zone.types ='S'上的區域;
通過使用JOIN,我們正在尋找rolls表和zones表具有的數據,而通過使用ON,我們將限制在具有共同列的位置查找數據。 這里的目標是合並這些表。 這樣就會發生:
[[rolls] JOINED [zones]]
tappi zone poids nom type
N1001 101 502 101 P
N1002 102 502 102 P
N1003 103 1008 103 S
N1004 104 1008 104 S
使用where可以細分更多的查詢,以僅查找類型為S的記錄。 所以現在您正在看:
[[rolls] JOINED [zones]]
tappi zone poids nom type
N1003 103 1008 103 S
N1004 104 1008 104 S
甚至更進一步,您將尋找該記錄並對自己說。 我只想要總和。 因此,您使用一個SELECT SUM(rolls.poids) ,最終結果是:
[sum(rolls.poids)]
2016
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.