簡體   English   中英

一個表中的SQL sum列,其中另一表中的值為“ S”

[英]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.

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