我有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
我想要做的是总和'roll'。'poids'如果'roll'。'zone'有'S'类型(根据表'zone')
输出应为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 roll JOIN区域ON rolls.zone = zones.nom WHERE zones.types ='S';
通过使用JOIN,我们正在查找roll表和区域表所具有的数据,并且通过使用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
使用我们将更多分段查询的地方仅查找类型为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