大家帮我看看这sql语句怎么写.
、在“学生管理数据库”中建立四张表,分别如下:
学生表:(主键:学号)
学号 姓名 性别 年龄 所在院系 班级 入学日期
20009001 葛文卿 女 22 国际贸易 国贸2班 2000-8-29
20014019 郑秀丽 女 21 会计学 会计1班 2001-9-2
20023001 刘成铠 男 18 计算机 软件2班 2002-8-27
20026002 李涛 女 19 电子学 电子1班 2002-8-27
20023002 沈香娜 女 18 计算机 软件2班 2002-8-27
20026003 李涛 男 19 计算机 软件1班 2002-8-27
20023003 肖一竹 女 19 计算机 软件2班 2002-8-27
课程表:(主键:课程号)
课程号 课程名 先修课 学分
C801 高等数学 4
C802 C++语言 C807 3
C803 数据结构 C802 4
C804 数据库原理 C803 4
C805 操作系统 C807 4
C806 编译原理 C803 4
C807 离散数学 4
成绩表:(主键:学号、课程号)
学号 课程号 成绩 学分
20023001 C801 98 4
20023002 C804 70 4
20026001 C801 85 4
20023001 C802 99 3
20026002 C803 82 4
授课表:(主键:课程号、班级名)
教师名 课程号 学时数 班级名
苏亚步 C801 72 软件2班
王文山 C802 64 软件2班
张珊 C803 72 软件2班
王文山 C804 64 软件2班
苏亚步 C801 72 软件1班
1.统计每一年龄选修课程的学生人数
2.在基本表“选课表”中检索平均成绩最高的学生学号
3.求表S中男同学的每一年龄组(超过2人)有多少人?要求查询结果按人数升序排列,人数相同按年龄降序排列。
4.列出选修了全部课程的学生学号和姓名
5.查询这样的学生,该生至少选修了学生20026001所选修的全部课程
问题点数:20、回复次数:2Top
1 楼fesxe(想飞的鸟)回复于 2005-04-02 06:48:54 得分 0
1..统计每一年龄选修课程的学生人数 怎么统计,我不懂.
2..在基本表“选课表”中检索平均成绩最高的学生学号
select top 1 学号,avg(分数) from 选课表 group by 学号 order by 2 desc
3.求表S中男同学的每一年龄组(超过2人)有多少人?要求查询结果按人数升序排列,人数相同按年龄降序排列。
select 年龄,count(年龄) from 学号 where 性别='男' group by 年龄 having count(年龄)=2 order by 2 asc
4.5 ..你这里面应该有一个选课表才对.
Top
2 楼hsj20041004(光芒)回复于 2005-04-02 09:00:05 得分 20
1、
select A.年龄,count(*) from 学生表 A inner join 成绩表 B on A.学号=B.学号 group by A.年龄
2、
select top 1 学号,avg(分数) from 选课表 group by 学号 order by 2 desc
3、
不明白意思
4、
select 学号,姓名 from 学生表 where 学号 in( select 学号 from 成绩表 group by 学号 having count(*)=(select count(*) from 课程表))
5、
select A.学号,A.姓名 from 成绩表 A inner join 学生表 B on A.学号=B.学号 where B.课程号 in(select 课程号 from 成绩表 where 学号='20026001')Top




