Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MS Access中的SQL:使用计数、联接和返回0_Sql_Ms Access_Ms Access 2003 - Fatal编程技术网

MS Access中的SQL:使用计数、联接和返回0

MS Access中的SQL:使用计数、联接和返回0,sql,ms-access,ms-access-2003,Sql,Ms Access,Ms Access 2003,很抱歉发布了这篇文章,但尽管网站上有一些例子,我还是无法让我的工作 因此,我有两个表格如下: 电话桌 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 tel

很抱歉发布了这篇文章,但尽管网站上有一些例子,我还是无法让我的工作

因此,我有两个表格如下:

电话桌

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


谢谢你的帮助。这很有效

然而,当我尝试在两者之间加入日期时,它只返回再次找到的分数

有什么想法吗


谢谢

因为只有Grade表格包含所有可用ID,所以您应该在SELECT中使用Grade.ID,而不是TEPHONY.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;

顺便说一句:“Name”是一个非常糟糕的列名称,因为它是一个保留字。

Peter的GradeID是多少?空?告诉我。我被困在一个数据库中,每个表都有ID和Name列。