我有两张桌子:
[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
我想要做的是总结'。' poids'如果' roll'。' zone'有类型' S' (根据表格'区域')
输出应为2016(1008 + 1008)
答案 0 :(得分:1)
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
。
答案 1 :(得分:1)
SELECT SUM(rolls.poids)FROM roll JOIN区域ON rolls.zone = zones.nom WHERE zones.types =' S';
使用 JOIN ,我们正在寻找滚动表和区域表所拥有的数据,并使用 ON < / strong>我们限制找到他们有一个共同列的数据。这里的目标是组合这些表。这样就会发生:
[[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
使用我们将更多分段查询的位置仅查找类型为 S 的记录。所以现在你看:
[[rolls] JOINED [zones]]
tappi zone poids nom type
N1003 103 1008 103 S
N1004 104 1008 104 S
更进一步,你会寻找这个记录并对自己说。我只是想要这些poids的总和。那么你使用 SELECT SUM(rolls.poids),最终的结果是:
[sum(rolls.poids)]
2016