sql查询题目求解

来源:百度知道 编辑:UC知道 时间:2024/09/22 04:38:13
在名称为教学库的数据库中包含有学生、课程和选课三个表,它们的定义分别为:学生(学生号 char(7),姓名 char(6),性别 char(2),出生日期 datetime,专业 char(10),年级 int),课程(课程编号 varchar(3),课程名称 varchar(20)),成绩(学生号 char(7),课程编号 char(4),成绩 int) 根据要求完成以下题目:
A.在“学生资料”数据库中统计出每个人都参加了的考试的课程的信息
B.在“学生资料”数据库中统计出高于各自课程的平均分的学生信息(一名学生的某门成绩只能与相同的课程的平均分相比较)。

学生(学生号 char(7),姓名 char(6),性别 char(2),出生日期 datetime,专业 char(10),年级 int),
课程(课程编号 varchar(3),课程名称 varchar(20)),
成绩(学生号 char(7),课程编号 char(4),成绩 int) ,

请问第三个表到底是成绩表还是选课表

A.select a.学生号,b.课程编号,b.课程名称 from 学生 a , 课程 b,成绩 c where a.学生号=c.学生号 and c.课程编号=b.课程编号 and 成绩 is not null
B.取得结果是个集合,我觉得只能在存储过程中用游标实现比较,看看还有其他高手解答一下!

第一题.要知道: 选课 选课人数 考试人数
如果count1 > count2就是有人缺考意思.
如果count1 = count2就是每个人都参加了的考试.
1、选课人数 直接group 课程编号+ count 1
2、考试人数 where 成绩 is not null 再 group+ count 2

------------------
第二题.求平均成绩 avg函数 ,null当0处理
要知道: 学生 选课 成绩 平均成绩
如果所有选课成绩均高过平均分就是当年优秀的呐