1.select s.学号,s.姓名 
from 学生表 s 
where 
   not exist (select 1
           from 选课表 k2,学生表 s2 
         where k2.学号=s2.学号 and s2.姓名='张三'
            and not exists (select 1 from 选课表 k where k.学号=s.学号 and k.课程=k2.课程) 
        ) 
2、select s.学号,s.姓名 
from 学生表 s ,选课表 k
where k.学号 *= s.学号
group by s.学号,s.姓名 
having sum(case when 成绩 <=60 then 1 else 0) >2 or sum(成绩) is null
3、 
select 授课教师,课程名,count(*) 学生
from 课程表 k,选课表 s
where k.课程号=s.课程号
group by 授课教师,课程名
having count(*) =
    (select top 1 count(*) from 课程表 k2,选课表 s2
      where  k2.课程号=s2.课程号
           and k2.授课教师=k.授课教师
       group by 授课教师,课程名
       order by count(*) desc
    )

解决方案 »

  1.   

    Mr. txliceuhe(决不冒牌马可)第三题,当有两门课程学生数一样且都为最多时,会有问题吧哦,题目里忘了强调列表时每个教师最多一行
      

  2.   

    to Mr. txliceuhe(决不冒牌马可)还是很强的,这是公司的面试题目,So many people花了半个小时也只搞定前两道
      

  3.   

    报告楼上:可以,不信你试试。
    最多一行啊,Too Simple 哈哈select 授课教师,课程名,count(*) 学生
    from 课程表 k,选课表 s
    where k.课程号=s.课程号
    group by 授课教师,s.课程号,课程名
    having s.课程号=
        (select top 1 s.课程号 from 课程表 k2,选课表 s2
          where  k2.课程号=s2.课程号
               and k2.授课教师=k.授课教师
           group by 授课教师,课程名
           order by count(*) desc
        )
      

  4.   

    不过建议txliceuhe(决不冒牌马可) 改成:select 授课教师,课程名,count(*) 学生
    from 课程表 k,选课表 s
    where k.课程号=s.课程号
    group by 授课教师,s.课程号,课程名
    having s.课程号=
        (select top 1 s.课程号 from 课程表 k2,选课表 s2
          where  k2.课程号=s2.课程号
               and k2.授课教师=k.授课教师
           group by 课程名
           order by count(*) desc
        )
    好理解
      

  5.   

    select 授课教师,课程名,count(*) 学生
    from 课程表 k,选课表 s
    where k.课程号=s.课程号
    group by 授课教师,s.课程号,课程名
    having s.课程号=
        (select top 1 s.课程号 from 课程表 k2,选课表 s2
          where  k2.课程号=s2.课程号
               and k2.授课教师=k.授课教师
           group by 授课教师, s.课程号
           order by count(*) desc
        )
    我就说中文字段名不好!
      

  6.   


        是啊,如果把表名、字段名都改为a、b、c之类的,用时可缩短一半以上。
      

  7.   

    是啊,如果把表名、字段名都改为a、b、c之类的,用时可缩短一半以上。没有道理的胡说
      

  8.   

    to Mr. txliceuhe(决不冒牌马可) 第二种方法就没有问题了,Well done
    可惜公司的Money很少,不然就挖你 ^-^
      

  9.   

    没分有什么好玩的不如去看看:
    http://community.csdn.net/Expert/topic/3238/3238322.xml?temp=.9951898