表:学生表(student)
    有 Number,Name,Class,Addreess等
   成绩表(grade)
    有Number,Name,Score,Class 
要求:
  写出查询到所有课程的最高分减去最低分的差的信息
  写出查询到成绩为第二名的信息

解决方案 »

  1.   

    --try
    --1
    select max(Score)-min(Score),Class  from grade group by Class
    --2
    select s.*,g.* from student s,grade g where s.Number=g.Number
    and t.Number =(
    select min(Number) from (
    select top 2 sum(Score)Score,Number from grade group by Number order by Score desc)t)
      

  2.   

    第二个你可以用top 再排序找个第二个成绩就行@第一个就随便找找@
      

  3.   

    --总分第二名
    select top 1 * from 
    (
    select top 2 * from 
    (
      select name , sum(score) sum_score from grade group by name
    ) t1 order by sum_score desc
    ) t2 order by sum_score--每门课程的第二名
    select * from 
    (
    select * , px = (select count(1) from grade where class = t.class and score > t.score) + 1 from grade t
    ) m
    where px = 2
      

  4.   

    --分差
    select max(score)-min(score) as 分差 from grade
    --第二名
    select top 1 * from (select top 2 * from grade order by score desc) t1 order by score