SQL 对一个 table 中的列求和,其中另一个 table 中的值是 'S'
SQL sum column in one table where value in another table is 'S'
我有 2 个 table:
[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' 类型(根据 table 'zones')
输出应该是 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
.
SELECT SUM(rolls.poids) FROM rolls JOIN zones ON rolls.zone = zones.nom WHERE zones.types ='S';
通过使用 JOIN 我们正在寻找 滚动 table 和 区域的数据table 有并且通过使用 ON 我们限制查找它们有共同列的数据。这里的目标是组合这些 tables。这样就会发生:
[[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
更进一步,您会寻找这张唱片并自言自语。我只想要 poid 的总和。那么你使用 SELECT SUM(rolls.poids) 最终结果是:
[sum(rolls.poids)]
2016
我有 2 个 table:
[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' 类型(根据 table 'zones')
输出应该是 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
.
SELECT SUM(rolls.poids) FROM rolls JOIN zones ON rolls.zone = zones.nom WHERE zones.types ='S';
通过使用 JOIN 我们正在寻找 滚动 table 和 区域的数据table 有并且通过使用 ON 我们限制查找它们有共同列的数据。这里的目标是组合这些 tables。这样就会发生:
[[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
更进一步,您会寻找这张唱片并自言自语。我只想要 poid 的总和。那么你使用 SELECT SUM(rolls.poids) 最终结果是:
[sum(rolls.poids)]
2016