日期:2014-05-19  浏览次数:20511 次

数据库多表查询的问题
首先有3个表:  
1、student表,字段sno,sname,sex,height  
2、coures表,字段cno,cname,credit(学分?)  
3、sc表,字段sno,cno,grade(得分?)  

问题:  
1、查询每个学生的平均成绩  
2、给出所有超过5个学生选的课程  
3、按总平均值降序给出所有课程均及格但不包括课程代号为C8的所有学生总平均值


谢谢

------解决方案--------------------
1.
select a.sno,a.sname,avg(b.grade)
from student as a inner join sc as b on a.sno=b.sno
group by a.sno,a.sname
order a.sno,a.sname

2.
select a.cno,a.cname
from coures as a left join sc as b on a.cno=b.no
group by a.cno,a.cname
order by a.cno,a.cname
having count(*)> 5
------解决方案--------------------
第3个问题描述的不清楚

除C8课程外所有课程均及格的所有学生的总平均值?这样的结果应该就一个啊,怎么会来按降序排?

是不是:除C8课程外所有课程均及格的所有学生的平均分,并按降序排?