发布此内容的道歉但是虽然网站上有一些例子,但我无法让我的工作。
所以我有两张表如下:
电话表
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来查找在Telephony表中找到每个等级的次数,包括使用以下查询返回任何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时,它只返回找到的成绩。
有什么想法吗?
由于
答案 0 :(得分:0)
由于只有Grade表包含所有可用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;
答案 1 :(得分:0)
我认为这就是你要找的东西:
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;
BTW:“名称”是列的一个非常糟糕的名称,因为它是一个保留字。