SQL查询 统计每门课的选课人数及不及格人数

有四张表:student(snum,sname,sex,dept,birthday,telephone),各属性分别代表:学号,姓名,性别,系别,出生日期,联系电话。其中... 有四张表:
student(snum,sname,sex,dept,birthday,telephone),各属性分别代表:学号,姓名,性别,系别,出生日期,联系电话。其中,snum是主键
course(cnum,cname,credits,descr,dept),名属性分别代表:课程号,课程名,学分,课程说明,开课系别。其中,cnum是主键
sc(snum,secnum,score)各属性分别代表:学号,班号,分数。其中,snum、secnum是主属性,外键。
sections(secnum,cnum,pnum)各属性分别代表:班号,课程号,教师工号。其中,secnum是主键,cnum是外键

请问,怎么用SQL语句查询,统计每门课的选课人数及不及格人数???要求求输出列名为:课程号,课程名,选课人数,不及格人数。
还有一个问题,就是怎么查询选修了所有课程的学生名单????
不要说哪张表缺什么属性了,这是很完整的了,缺的只是数据了,......
课程号跟班号一一对应!!!
展开
 我来答
匿名用户
2010-04-21
展开全部
select a.cnum,a.cname,a.rs,b.bjg_rs
from

(select sec.cnum,c.cname,count(s.snum) as 'rs'
from student s,course c,sc,sections sec
where s.snum = sc.snum and
sc.secnum = sec.secnum and
sec.cnum = c.cnum
group by sec.cnum,c.cname) a

left join

(select sec.cnum,c.cname,count(s.snum) as 'bjg_rs'
from student s,course c,sc,sections sec
where s.snum = sc.snum and
sc.secnum = sec.secnum and
sec.cnum = c.cnum and
sc.score < '60'
group by sec.cnum,c.cname) b

on a.cnum = b.cnum
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ykandyp
2010-04-21 · TA获得超过188个赞
知道答主
回答量:275
采纳率:0%
帮助的人:0
展开全部
你确定你写的这四个表没有问题么?如果你一个学生 选了2个科目,你怎么储存这个信息?

看完楼主发的图片后,感觉你的描述和图片表达的意思有出入。等待其他大虾赐教,学习了
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式