通过视图studentscore查询最高成绩在90分及以上且没有不及格成绩的学生的学号 姓名 院系名称 班级
时间: 2024-10-16 16:18:53 浏览: 37
MS SQLServer2000数据库文件(毕业设计).zip_学生信息_学生信息管理_学生成绩管理_数据库系统_查询优化
为了查询最高成绩达到90分及以上并且所有成绩都不低于60分(假设不及格标准为60分)的学生的信息,我们需要首先确认视图`studentScore`是否包含了所有的必要字段,比如院系(`dept_name`)和班级(`class`). 假设这些信息也在`students`表中,你可以使用以下SQL语句:
```sql
SELECT
stu_id,
name,
dept_name,
class
FROM
(
SELECT
stu_id,
name,
dept_name,
class,
MAX(max_score) as highest_score
FROM
studentScore
WHERE
max_score >= 90 AND min_score >= 60
GROUP BY
stu_id, name, dept_name, class
HAVING
COUNT(*) = (SELECT COUNT(*) FROM scores WHERE student_id = studentScore.stu_id)
) high_scores
JOIN
students s ON high_scores.stu_id = s.stu_id;
```
这里我们首先筛选出满足条件的学生,然后确保他们的最高成绩确实是他们的全部成绩。接着再将结果与原始的学生表进行JOIN。
阅读全文