--当一个查询是另一个查询的条件时,
--嵌套查询下层的程序模块,称之为子查询
--项目一.
--开发学生选课表中状态为报名,的课程名称有哪些?
--需要查询(课程表)(选课表)表?
--子查询的对象(报名状态为报名)
--使用的查询方法(子查询)
--第一步.查询课程表和学生选课表
selectfrom Course
selectfrom StuCou
--第二步.使用纵向嵌套子查询查询结果
select'课程名称'=couname
from Course
where couno in(select couno from StuCou where State='报名')
--项目二.
--要求查询班级名称为2015(3+2)计算机班的,的课程名称为2008数据库应用的学生姓名、
--平时成绩,( 平均 )平时成绩,( 平均 )平时成绩和学生平时成绩的差值,以判断每班
--同学上半学期的成绩情况。
--需要查询(class)(couse)(student)(achievement)(stucou)表?
--要查询的列(班级名称)(课程名称)( 学生姓名 )( 期中成绩 )( 平均期中成绩 )( 平时成绩和平均平时成绩的差值 )
--子查询的对象(平均平时成绩 )
--还使用的查询方法( 内链接,函数和横向嵌套查询 )
--第一步.定义查询班级表、课程表、学生表、成绩表、选课表并进行关联.要查询的列是哪些
from class.classname,student.stuname,stucou.stuno,achievement.stuno,couse.couno
--第二步.查询班级表的班级名称、课程表的课程名称、学生表的学生姓名、成绩表的期中成绩。
select class.classname,course.couname,student.stuname,achievement.qzcj,
(select AVG (qzcj ) from achievement),achievement.qzcj -(select AVG (qzcj )from achievement )
from Class join Student
on class.ClassNo =Student.ClassNo
join StuCou
on Student .StuNo=StuCou.StuNo
join achievement
on StuCou.StuNo=achievement.StuNO
join Course
on StuCou.CouNo=Course.CouNo
where Class.ClassName ='2015(3+2)计算机' and Course.CouName ='SQL server实用技术'
--第三步、查询成绩表的( )期中成绩
--第四步、限定班级和课程条件使用子查询查询出结果
select class.classname,course.couname,student.stuname,achievement.qzcj,
(select AVG (qzcj ) from achievement),achievement.qzcj -(select AVG (qzcj )from achievement )
from Class join Student
on class.ClassNo =Student.ClassNo
join StuCou
on Student .StuNo=StuCou.StuNo
join achievement
on StuCou.StuNo=achievement.StuNO
join Course
on StuCou.CouNo=Course.CouNo
where Class.ClassName ='2015(3+2)计算机' and Course.CouName ='SQL server实用技术'