Ms access MS Access count查询未生成所需的结果
我有一个表tblExam,显示考试数据分数,设计如下: 考试名称:String 分数:number最近 基本上,在我的情况下,当分数低于0.695的特定数值时,我试图通过考试名称来提取记录 我使用以下语句获得结果:Ms access MS Access count查询未生成所需的结果,ms-access,Ms Access,我有一个表tblExam,显示考试数据分数,设计如下: 考试名称:String 分数:number最近 基本上,在我的情况下,当分数低于0.695的特定数值时,我试图通过考试名称来提取记录 我使用以下语句获得结果: SELECT DISTINCTROW tblExam.name, Count(tblExam.name) AS CountOfName FROM tblExam WHERE (((tblExam.Score)<0.695)) GROUP BY tblExam.name; 计数
SELECT DISTINCTROW tblExam.name, Count(tblExam.name) AS CountOfName
FROM tblExam WHERE (((tblExam.Score)<0.695))
GROUP BY tblExam.name;
计数为0和任何分数高于0.695的考试都不会显示。我想要的是这样的:
Exam Name count
firstExam 2
secondExam 1
thirdExam 3
fourthExam 0
fifthExam 0
sixthExam 2
.
..
.etc...
我希望我在这里讲得有道理。我想我需要某种左连接来显示所有的考试名称,但我无法想出正确的语法。我是否检测到矛盾?查询调用结果0.695。也许我不明白。这是否为您提供了您想要的:
SELECT DISTINCTROW tblExam.ExamName, Count(tblExam.ExamName) AS CountOfExamName
FROM tblExam
WHERE (((tblExam.Score)<0.695 Or (tblExam.Score)>0.695))
GROUP BY tblExam.ExamName;
似乎您希望显示所有名称组,并且在每个组中,分数计数<0.695。因此,我认为应该将<0.695从WHERE移到Count表达式,实际上删除WHERE子句 选择 e、 名字, CountiLife.分数<0.695,1,作为CountOfName为空 从tblExam作为e 按e.name分组; 这是因为Count只计算非空值。如果看起来更清楚,您可以使用Sum而不是Count: SumiLife.得分<0.695,1,0作为CountOfName
注意:DISTINCTROW在分组查询中没有用处,因为分组使得没有它的行是唯一的。因此,我从查询中删除了DISTINCTROW。您的解决方案非常适合我的需要,并且比我最终找到的解决方案更好、更简单:选择DISTINCTROW e.name,NZee.numofilure,0作为tblExam中的numberofilures AS e LEFT JOIN选择DISTINCTROW name,Countname作为tblExam中的numofilure WHERE Score
SELECT DISTINCTROW tblExam.ExamName, Count(tblExam.ExamName) AS CountOfExamName
FROM tblExam
WHERE (((tblExam.Score)<0.695 Or (tblExam.Score)>0.695))
GROUP BY tblExam.ExamName;