, ( select 系_ID, count(*) xss from dbo.学生 group by 系_ID )l2 where l1.系_ID=l2.系_ID order by bz ) lin where w.系_ID = lin.系_ID 21.全都及格了的学生
select 学生_ID, 姓名, 出生日期, 性别_ID, 籍贯_ID, 系_ID, 届, 班级 from dbo.学生 where 学生_ID in (
select 学生_ID from dbo.学生选课 group by 学生_ID having min(成绩)>=60 )
22.求选了跟[李宇春课程数量] 相同 的[学生]?
select 姓名 from dbo.学生 where 学生_ID in (
select 学生_ID from dbo.学生选课 group by 学生_ID having count(*)= ( select shu from ( select 学生_ID,count(*) shu from dbo.学生选课 group by 学生_ID )lin where 学生_ID = ( select 学生_ID from dbo.学生 where 姓名 = '李宇春' ) ) )
and 姓名 != '李宇春' 23 与java 学时 相同的 课程
select 课程_ID, 课程名, 学分, 学时, 系_ID, 年级, 学期
from dbo.课程 where 学时 = ( select 学时 from dbo.课程 where 课程名='java' )
and 课程名!='java'
select b.*
from dbo.课程 a , dbo.课程 b where a.学时=b.学时
and a.课程名='java' and b.课程名!='java' 24课时安排冲突的记录
select distinct a.开课_ID
from dbo.课时安排 a,dbo.课时安排 b where a.星期=b.星期 and a.节=b.节
and a.教室号=b.教室号 and a.开课_ID!=b.开课_ID 25 --张无忌 老师都开过什么课了 select 课程_ID,课程名 from dbo.课程
where 课程_ID in ( select 课程_ID from dbo.开课 where 开课_ID in ( select 开课_ID from dbo.教师认课 where 教师_ID in ( select 教师_ID from dbo.教师 where 教师名='张无忌' ) ) )
select 课程_ID,课程名
from dbo.课程,dbo.开课,dbo.教师认课,dbo.教师 where dbo.课程. 课程_ID= dbo.开课.课程_ID and dbo.开课.开课_ID=dbo.教师认课.开课_ID and dbo.教师认课.教师_ID=dbo.教师.教师_ID and dbo.教师.教师名='张无忌' 26--平均分比 那英 高的学生名单
--查名单[ 平均分 >[ 那英的平均分] ]
select 姓名 from dbo.学生
where 学生_ID in ( select 学生_ID from dbo.学生选课 group by 学生_ID having avg(成绩)> ( select avg(成绩) from dbo.学生选课 where 学生_ID= ( select 学生_ID from dbo.学生 where 姓名='那英' ) ) )
27 --本年度选课 少于3门的学生
select 学生_ID, 姓名 from dbo.学生 where 学生_ID in (
select 学生_ID from dbo.学生选课 where 开课_ID in ( select 开课_ID from dbo.开课 where 年度=year(getdate()) )
group by 学生_ID having count(*) <3 )
28 --全及格了的学生
select *
from dbo.学生
where 学生_ID not in (
select 学生_ID from dbo.学生选课 where 成绩<60 )
29. --2006 2007年度 开课的门数
select count(case 年度 when 2006 then 1 end), count(case 年度 when 2007 then 1 end) from dbo.开课
30. --比物理系所有老师 年龄都大的 外语系老师
select *
from dbo.教师
where datediff(yy,出生日期,getdate()) >all ( select datediff(yy,出生日期,getdate()) from dbo.教师 where 系_ID= ( select 系_ID from dbo.系 where 系名='物理系' ) )
and 系_ID= ( select 系_ID from dbo.系 where 系名='外语系' )
31. --java前5名,VC后5名 的学生
select *
from dbo.学生 where 学生_ID in (
select top 5 学生_ID
from dbo.课程 a,dbo.开课 b,dbo.学生选课 c
where c.开课_ID=b.开课_ID and b.课程_ID=a.课程_ID and 课程名='java' order by 成绩 desc )
and 学生_ID in (
select top 5 学生_ID
from dbo.课程 a,dbo.开课 b,dbo.学生选课 c
where c.开课_ID=b.开课_ID and b.课程_ID=a.课程_ID and 课程名='vc' order by 成绩 asc )
32.--2006年选了课的学生
select *
from dbo.学生 where 学生_ID in ( select 学生_ID from dbo.学生选课 a,dbo.开课 b where a.开课_ID=b.开课_ID )
select *
from dbo.学生 x where exists
( )
select *
from dbo.学生选课 a,dbo.开课 b where a.开课_ID=b.开课_ID and x.学生_ID=a.学生_ID
select *
from dbo.学生 x where 学生_ID in (
select distinct 学生_ID from dbo.学生选课 where 开课_ID in ( select 开课_ID from dbo.开课 where 年度=2006 ) )
select distinct x.*
from dbo.学生 x,dbo.学生选课 a,dbo.开课 b where x.学生_ID=a.学生_ID and a.开课_ID=b.开课_ID and b.年度=2006
------------------------------------------------------------------------------- 33.--25岁以下的 选了java课的男生
select *
from dbo.学生
where 性别_ID=1 and datediff(year,出生日期,getdate())<=25 and 学生_ID in (
select 学生_ID
from dbo.学生选课 a , dbo.开课 b , dbo.课程 c
where a.开课_ID =b.开课_ID and b.课程_ID =c.课程_ID and c.课程名 like '%java%' )
----------------------------------------------------------------------------------- 34 --大四的总学分小于5的学生
select *
from dbo.学生 where 学生_ID in (
select *
from dbo.学生选课 a ,dbo.开课 b ,dbo.课程 c where not(成绩 is null or 成绩<60) and a.开课_ID =b.开课_ID and b.课程_ID =c.课程_ID