执行访问查询时,无法查看查询和警告消息的错误

时间:2016-02-07 19:25:30

标签: sql ms-access

我有以下查询(如下),每次点击“运行”我都会收到此消息

  

'您的查询不包含指定表达式'StudentNumber'作为聚合函数的一部分。'

SELECT results.StudentNumber, student.FirstName, student.LastName, 
 results.Result1, results.Result2, results.Result3, results.Overall, 
 ROUND(((AVG(results.Result1) + AVG(results.Result2) + 
         AVG(results.Result3)) / 3), 0) AS AverageMark 
FROM Results AS results 
  INNER JOIN Student AS student ON results.StudentNumber = student.StudentNumber

我不明白警告信息是什么问题,任何人都可以帮助解决问题,或者看看我做错了什么?

提前致谢

1 个答案:

答案 0 :(得分:2)

如果您在任何列(此处为AVG())上使用聚合函数,则所有列也必须是聚合函数的一部分,或者在GROUP BY子句中指定。

如果您想要每位学生的平均成绩,那么所有student列都应该进入GROUP BY。但是,您无法在一个查询中获得详细结果平均结果 - 您希望查询输出看起来如何?

工作查询应该是例如。

SELECT student.StudentNumber, student.FirstName, student.LastName, 
 ROUND(((AVG(results.Result1) + AVG(results.Result2) + 
         AVG(results.Result3)) / 3), 0) AS AverageMark 
FROM Results AS results 
  INNER JOIN Student AS student ON results.StudentNumber = student.StudentNumber
GROUP BY student.StudentNumber, student.FirstName, student.LastName