查询通过和未通过的学生
Query for students passed and not passed
如何查询一个学生是否通过,每个学生有十个科目,每个科目的及格分数是(>49)
要通过的学生,he/she 必须通过所有科目。
有什么帮助吗?
使用 GROUP BY
查询来计算每个学生的科目失败次数:
Count(IIf(q.Total > 49, Null, 1))
最终您只想看到通过所有科目的学生,这意味着他们的不及格数为零。因此,在查询的 HAVING
子句中包含该条件。
SELECT
q.StudentsID,
Count(IIf(q.Total > 49, Null, 1)) AS CountOfFailures
FROM QueryTotalGraedFirstCourse AS q
GROUP BY q.StudentsID
HAVING Count(IIf(q.Total > 49, Null, 1)) = 0;
您可以在 Access 查询设计器的设计视图中开始构建此查询。指定您的 table、select 字段,并在设计视图中设置基本的 GROUP BY
详细信息。然后您可以切换到 SQL 视图以在 Count
.
中包含 IIf
表达式
这是 QueryTotalGraedFirstCourse 的示例数据。为了简单起见,我只为每个学生设置了 2 个科目。
StudentsID subject_id Total
---------- ---------- -----
1 1 90
1 2 85
2 1 65
2 2 30
3 1 40
3 2 35
根据您的描述,"passed" 表示任何科目都没有不及格分数,因此我的示例数据中只有 StudentsID 1 通过。这是我的查询结果,使用数据样本并在 Access 2010 中测试:
StudentsID CountOfFailures
---------- ---------------
1 0
如果您想查看所有学生,而不仅仅是通过考试的学生,只需删除 HAVING
子句即可。
如何查询一个学生是否通过,每个学生有十个科目,每个科目的及格分数是(>49)
要通过的学生,he/she 必须通过所有科目。
有什么帮助吗?
使用 GROUP BY
查询来计算每个学生的科目失败次数:
Count(IIf(q.Total > 49, Null, 1))
最终您只想看到通过所有科目的学生,这意味着他们的不及格数为零。因此,在查询的 HAVING
子句中包含该条件。
SELECT
q.StudentsID,
Count(IIf(q.Total > 49, Null, 1)) AS CountOfFailures
FROM QueryTotalGraedFirstCourse AS q
GROUP BY q.StudentsID
HAVING Count(IIf(q.Total > 49, Null, 1)) = 0;
您可以在 Access 查询设计器的设计视图中开始构建此查询。指定您的 table、select 字段,并在设计视图中设置基本的 GROUP BY
详细信息。然后您可以切换到 SQL 视图以在 Count
.
IIf
表达式
这是 QueryTotalGraedFirstCourse 的示例数据。为了简单起见,我只为每个学生设置了 2 个科目。
StudentsID subject_id Total
---------- ---------- -----
1 1 90
1 2 85
2 1 65
2 2 30
3 1 40
3 2 35
根据您的描述,"passed" 表示任何科目都没有不及格分数,因此我的示例数据中只有 StudentsID 1 通过。这是我的查询结果,使用数据样本并在 Access 2010 中测试:
StudentsID CountOfFailures
---------- ---------------
1 0
如果您想查看所有学生,而不仅仅是通过考试的学生,只需删除 HAVING
子句即可。