Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL-如何查询整个表和分组值_Sql_Ms Access - Fatal编程技术网

SQL-如何查询整个表和分组值

SQL-如何查询整个表和分组值,sql,ms-access,Sql,Ms Access,如果我有两个表,例如Students和Grades,并且它们之间存在关系Students.ID=Grades.studentID,我如何查询Grade表中的平均成绩并将其与单个学生的平均成绩进行比较 我已经在这上面呆了很长一段时间了,这就是我到目前为止所做的: SELECT Students.studentName FROM Students, Grades WHERE AVG(grade) < (SELECT AVG(grade) GROUP BY studentName);

如果我有两个表,例如Students和Grades,并且它们之间存在关系Students.ID=Grades.studentID,我如何查询Grade表中的平均成绩并将其与单个学生的平均成绩进行比较

我已经在这上面呆了很长一段时间了,这就是我到目前为止所做的:

SELECT Students.studentName 
FROM Students, Grades 
WHERE AVG(grade) < (SELECT AVG(grade) GROUP BY studentName);

   ^This part is to                 ^This part is to     
    find out the                     find out individual
    overall grade                    grade average
    average

在MS Access中,用一条SELECT语句很难做到这一点,但如果您创建一个保存的查询,仅从成绩表数据中提供总体成绩平均值,则很容易做到这一点。您可以将该查询命名为qGradeAverage,它的外观如下:

从成绩中选择平均[成绩]作为总体成绩平均值

然后将其添加到最终查询中

SELECT Students.StudentID, Students.StudentName, Avg(Grades.Grade) AS StudentGradeAverage, qGradeAverage.OverallGradeAverage
FROM qGradeAverage, Grades INNER JOIN Students ON Grades.StudentID = Students.StudentID
GROUP BY Students.StudentID, Students.StudentName, qGradeAverage.OverallGradeAverage;
注意:如果您使用的是SQL Server,则可以在单个存储过程中执行此操作,方法是首先获取平均值并将其保存为变量