访问次数()返回零。不知道如何离开加入

时间:2015-12-18 13:29:52

标签: sql ms-access join count zero

我准备好了这个查询:

SELECT s.clubnr, sum(iif(s1.positie = "KP", 1, 0 )) AS AantalKeepers
FROM Selectie AS s, Speler AS s1, club c
WHERE s.spelernr = s1.spelernr
AND s.clubnr = c.clubnr
GROUP BY s.clubnr;

它返回以下结果:

clubnr  AantalKeepers
1            4
2            5
3            3
4            4
5            3
6            4
7            3
8            2
9            3
10           3
11           3
12           4
13           4
14           4
15           3
16           3
17           3
18           3

来自俱乐部的球员,他们的位置是" KP"但问题是结果只给了我那些球员的俱乐部。

我有22个俱乐部,但查询给了我18个回报。因为其他4个俱乐部(19到22岁)没有任何" KP"的球员。所以我需要获得那些俱乐部,然后查询返回0。

我已经在论坛中查看并在几个主题中看到了LEFT JOIN。这是一个我不理解的Acces SQL级别。

有人可以帮我这个吗?多久以来一直坚持这一点,我们将不胜感激。

为了更好地查看,此处是查询所在的文件:Here 谢谢大家。

2 个答案:

答案 0 :(得分:0)

ANSI SQL语法。不确定Access是否需要一些额外的括号......

SELECT s.clubnr, sum(iif(s1.positie = "KP", 1, 0 )) AS AantalKeepers
FROM Selectie AS s
    LEFT JOIN Speler AS s1 ON s.spelernr = s1.spelernr
    LEFT JOIN club c ON s.clubnr = c.clubnr
GROUP BY s.clubnr;

答案 1 :(得分:0)

通过删除SELECT子句中的IIF可以解决您的直接问题。 E.g。

SELECT s.clubnr, sum(*) AS AantalKeepers
FROM Selectie AS s, Speler AS s1, club c
WHERE s.spelernr = s1.spelernr
AND s.clubnr = c.clubnr
GROUP BY s.clubnr;