请教sql查询问题

来源:百度知道 编辑:UC知道 时间:2024/05/09 07:56:10
学生id 学生姓名 课程id 课程名称 成绩 教师id 教师姓名
s3 王五 k4 政治 53 t4 赵老师
s1 张三 k1 数学 61 t1 张老师
s2 李四 k3 英语 88 t3 李老师
s1 张三 k4 政治 77 t4 赵老师
s2 李四 k4 政治 67 t5 周老师
s3 王五 k2 语文 90 t2 王老师
s3 王五 k1 数学 55 t1 张老师
s1 张三 k2 语文 81 t2 王老师
s4 赵六 k2 语文 59 t1 王老师
s1 张三 k3 英语 37 t3 李老师
s2 李四 k1 数学 81 t1 张老师
"以上是二维表T(F1,F2,F3,F4,F5,F6,F7).用sql语言实现查询,在一个二维表里列印各科成绩最高最低的记录(就是各门课程的最高\最低分的学生和老师
"

课程id 课程名称 最高分 学生id 学生姓名 教师id 教师姓名 最低分 学生id 学生姓名 教师id 教师姓名

SELECT T1.F3 AS 课程ID,T1.F4 AS 课程名称,T1.F5 AS 最高分,T1.F1 AS 学生ID,T1.F2 AS 学生姓名,T1.F6 AS 教师ID,T1.F7 AS 教师姓名,T2.F5 AS 最低分,T2.F1 AS 学生ID,T2.F2 AS 学生姓名,T2.F6 AS 教师ID,T2.F7 AS 教师姓名
FROM
(SELECT a.* FROM T a WHERE F5 = (SELECT MAX(F5) FROM T WHERE F3=a.F3)) T1,
(SELECT a.* from T a WHERE bh = (SELECT MIN(F5) FROM T WHERE F3=a.F3)) T2
WHERE T1.F3 = T2.F3

select 课程id ,课程名称 ,max(成绩) as '最高分' ,学生id ,学生姓名, 教师id, 教师姓名 from [表名]
group by 课程id ,课程名称 ,学生id ,学生姓名, 教师id, 教师姓名
union
select 课程id ,课程名称 ,min(成绩) as '最低分' ,学生id ,学生姓名, 教师id, 教师姓名 from [表名]
group by 课程id ,课程名称 ,学生id ,学生姓名, 教师id, 教师姓名