[英]SQL in MS-Access: Using COUNT, JOIN and returning 0s
很抱歉发布此消息,但尽管网站上有一些示例,但我还是无法正常工作。
所以我有两个表,如下所示:
电话表
ID | Name | GradeID
1 Richard 1
2 Allan 1
3 Peter
我也有一个成绩表:
ID | Name
1 1
2 2
3 3
4 4
5 5
无论如何,我正在尝试使用COUNT()和LEFT JOIN来查找在电话表中找到每个年级的次数,包括使用以下查询返回包括0的任何一个:
SELECT telephony.GradeID, COUNT(*) AS Total
FROM telephony LEFT JOIN grade
ON telephony.GradeID = grade.ID
GROUP BY telephony.GradeID
ORDER BY 1;
该查询返回找到的所有成绩,但不会返回所有0项的成绩:
Grade | Total
1 2
请帮忙。 我正在使用Microsoft Access 2003。
感谢你的帮助。 很好
但是,当我尝试合并DATE BETWEEN时,它仅返回再次找到的成绩。
有任何想法吗?
谢谢
由于只有成绩表包含所有可用的ID,因此您应该在SELECT中使用grade.ID而不是telephony.GradeID。 尝试执行此查询:
SELECT grade.ID, COUNT(telephony.ID) FROM grade
LEFT JOIN telephony ON telephony.GradeID = grade.ID
GROUP BY grade.ID
ORDER BY 1;
我认为这是您要寻找的:
SELECT grade.ID, Count(telephony.ID) AS CountOfID
FROM grade LEFT JOIN telephony ON grade.ID= telephony.GradeID
GROUP BY grade.ID
ORDER BY 1;
顺便说一句:“名称”对于列来说是非常不好的名称,因为它是保留字。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.