MS Access出现问题并计算列的平均值

时间:2011-05-19 18:49:29

标签: sql ms-access

我有这个MS Access查询:

SELECT DISTINCT 
    Career.careerId, Student.studentName, Avg([Student-Topic].grade), Career.careerName
FROM 
    Career INNER JOIN 
        (
        (Student INNER JOIN [Student-Topic] 
            ON Student.studentId = [Student-Topic].studentId) 
                INNER JOIN [Student-Career] 
                    ON Student.studentId = [Student-Career].studentId) 
        ON Career.careerId = [Student-Career].careerId
WHERE 
    (((
        [Student-Career].careerId)=[Career].[careerId]) AND 
        (([Student-Topic].studentId)=[Student].[studentId]));

没有Avg功能,查询工作正常,但是当我放置它时,它会崩溃......

我的错误是什么?

2 个答案:

答案 0 :(得分:4)

此查询是否表示您要查找的平均值?

SELECT studentId, Avg(grade) AS average_grade
FROM [Student-Topic]
GROUP BY studentId;

如果是这样,您可以将其另存为单独的查询并将其与原始查询一起加入。或者将其作为子查询包含在原始查询中。

修改:糟糕。子查询可能会有问题,因为表名必须括在括号中......当它在子查询周围使用方括号时,可能会混淆Access的查询设计器。最好给表格一个不需要包围的名字...... Student_Topic而不是学生主题。

答案 1 :(得分:3)

您必须在使用汇总功能时对数据进行分组。

  • 即。添加GROUP BY子句。