码迷,mamicode.com
首页 > 数据库 > 详细

SQL查询升级版

时间:2014-08-07 00:34:57      阅读:293      评论:0      收藏:0      [点我收藏+]

标签:问题   代码   sql   ad   关系   rom   select   count   

根据现有的学生表,课程表,选课关系表,查询一。没有修过李明老师的课的学生,查询
二,既学过a课程,又学过b课程的学生姓名
Sql代码
S表 [SNO,SNAME]--学生表
C表 [CNO,CNAME,CTEATHER] --课程表
SC表 [SNO,CNO,SCGRADE] --选课关系表

查询一:没有修过李明老师的课的学生的姓名
select sname from s where not exists
(select*from sc,c where sc.cno=c.cno and c.cteather=‘李明‘ and sc.sno=s.sno)

查询二: 列出有二门以上(含两门)不及格课程的学生姓名及其平均成绩
SELECT S.SNO,S.SNAME,AVG(SC.SCGRADE)
FROM S,SC,(
SELECT SNO
FROM SC
WHERE SCGRADE <60
GROUP BY SNO
HAVING COUNT(DISTINCT CNO)>=2
)A WHERE S.SNO=A.SNO AND SC.SNO=A.SNO
GROUP BY S.SNO,S.SNAME


查询三:既学过a课程,又学过b课程的学生姓名
SELECT S.SNO,S.SNAME
FROM S,(
SELECT SC.SNO
FROM SC,C
WHERE SC.CNO=C.CNO
AND C.CNAME IN(‘a‘,‘b‘)
GROUP BY SNO
)SC WHERE S.SNO=SC.SNO

问题四
列出“1”号课成绩比2号同学该门课成绩高的所有学生学号
SELECT S.SNO,S.SNAME
FROM S,SC SC1,SC SC2
WHERE SC1.CNO=‘1‘
AND SC2.SNO=‘2‘
AND SC1.CNO=S.CNO
AND SC1.SCGRADE>SC2.SCGRADE

问题五
列出“1”号课成绩比“2”号课成绩高的所有学生的学号及其“1”号课程
和“2”号课程的成绩
SELECT SC1.SNO,[1号课成绩]=SC1.SCGRADE,[2号课成绩]=SC2.SCGRADE
FROM SC SC1,SC SC2
WHERE SC1.CNO=‘1‘
AND SC2.CNO=‘2‘
AND SC1.SNO=SC2.SNO
AND SC1.SCGRADE>SC2.SCGRADE

SQL查询升级版,布布扣,bubuko.com

SQL查询升级版

标签:问题   代码   sql   ad   关系   rom   select   count   

原文地址:http://www.cnblogs.com/sunn3d/p/3895979.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!