我有四张这样的桌子:
带字段ID的ClassName
学生的平均考试分数,是通过把所有分数加起来计算出来的,然后除以科目数。如果约翰有数学8,英语4,文学6,那么他的平均考试分数是(8+4+6)/3=6,如果玛丽有数学10和英语5,那么她的平均考试分是(10+5)/2=7.5
我要选择的人谁有最高的平均考试点,然后显示他们的名字,他们的类名和他们的平均考试分数。我该怎么做呢?
发布于 2010-11-27 17:17:15
尝试这两个查询。第一种观点给出了每个学生的平均考试成绩。
V_AveragesPoints
SELECT s.FullName, c.ClassName, AVG(p.ExamPoint) AS AvgPoints
FROM Points p
INNER JOIN Student s
ON p.StudentID = s.ID
INNER JOIN Class c
ON s.ClassID = c.ID
GROUP BY s.FullName, c.ClassName第二部分给出了每堂课平均分数最高的观点。
SELECT FullName, ClassName, AvgPoints
FROM V_AveragePoints ap1
WHERE AvgPoints = (SELECT MAX(AvgPoints) FROM V_AveragePoints WHERE ClassName = ap1.ClassName)我使用标准的them编写了这些代码,因此它们应该在MS Access中工作,尽管我还没有使用MS验证它们。它们在Server中运行良好,但请告诉我。
https://stackoverflow.com/questions/4292701
复制相似问题