访问计数() return 零。不知道如何离开加入

Access count() return zero. Don't know how to left join

我已经准备好这个查询:

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;

return结果如下:

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 个俱乐部,但查询在 return 中给了我 18 个。因为其他 4 个俱乐部(19 到 22)没有 "KP" 的球员。所以我也需要得到那些俱乐部然后查询 t return 0.

我查看了论坛并在几个线程中看到了 LEFT JOIN。这是我不明白的访问级别SQL。

有人可以帮我解决这个问题吗?坚持了好几天,如果能重新审视一下,我们将不胜感激。

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

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;

您眼前的问题可以通过删除 SELECT 子句中的 IIF 来解决。例如

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;