SQL正在做的是计算所有已经提交评估并且附带任务的老年人,并且评估完成(没有标记为" I")的2013秋季学期每门课程。
我目前正在专门研究ED495-课程。基本上发生了什么是教授进入评估并为单个学生/评估而不是仅仅一个文件添加了多个文件(每个文件名在FileCabinet表中创建记录)。因此,当它查看是否存在该学生存在的文件时,它会看到所有这些文件并计算每个文件。该特定课程只有5名学生。我所期望的那个课程的输出应该是5,因为每个人都有一篇随评估提交的论文。
" Count(*)Pool"当我只需要它时基本上会说是的,那个学生至少有一个记录并计算它。
SELECT Course.CourseN, Course.Sect, COUNT(FileCabinet.TheFile) [Pool]
FROM Course
INNER JOIN RubricW ON Course.WID = RubricW.WID
INNER JOIN Students_CR ON Course.StuID = Students_CR.StuID
INNER JOIN FileCabinet ON Course.WID = FileCabinet.WID
WHERE Course.Year = 2013
AND Course.Semester = 'FA'
AND (Students_CR.CR = 'SR' AND Students_CR.Year = 2013 AND Students_CR.Sem = 'FA')
AND FileCabinet.TheFile IS NOT Null
AND (Obj1 NOT IN('I') OR Obj2 NOT IN('I') OR Obj3 NOT IN('I') OR Obj4 NOT IN('I') OR Obj5 NOT IN('I') OR Obj6 NOT IN('I') OR Obj7 NOT IN('I'))
GROUP BY Course.CourseN, Course.Sect
结果集:
CourseN Sect Pool
AG232G M1 7
AT481- M1 9
CJ234- M1 6
ED341- M1 4
ED495- M1 45
EN232- M1 3
EN242- M1 2
EN250G M1 4
EN430G M1 8
MK334- M1 2
MK496- M1 4
MT398- M1 10
MU350G M1 7
PS330- M1 3
PS344- M1 1
RP450- M1 5
SY330- M1 7
TH330G M1 9
TH342G M1 2
SQL正用于协助审核委员会进行随机评估。他们有多种方式可以提取,清单是帮助他们决定需要审核的评估数量。
希望我解释得很好。我正在考虑的是限制教授无法从我的VB .NET代码中提交多个文件。如果可能的话,我想阻止它。
答案 0 :(得分:0)
尝试使用
COUNT(DISTINCT Students_CR.StuID)
相反,不管每个学生有多少文件,每个学生只会被计算一次。