假如有一个关于学生成绩的表:
name  course  score year ...
张三   数学      80   2001 ...
李四   语文      84   2002 ...
张三   语文      91   2002 ...
张三   数学      78   2001 ...
...我想得到这样的结果,按分别列出张三和李四的成绩,张三的记录按科目在一起,并且以时间为序:
张三   数学      80   2001
张三   数学      91   2002
张三   语文      78   2001
李四   语文      84   2002

解决方案 »

  1.   

    select *
    from t
    order by name desc,course,score desc,year asc
      

  2.   


    select * from 成绩的表 group by name,course,score,year order by year
      

  3.   


    select * from table group by name,course,score,year order by year
      

  4.   

    declare @tb table (name varchar(10),course varchar(10),score int,year int)
    insert into @tb select '张三','数学',80,2001
    insert into @tb select '李四','语文',84,2002
    insert into @tb select '张三','语文',91,2002
    insert into @tb select '张三','数学',78,2001select *
    from @tb
    order by name desc,course,score,yearname course score year
    张三 数学 78 2001
    张三 数学 80 2001
    张三 语文 91 2002
    李四 语文 84 2002楼主写错了
      

  5.   

    group by 不行,因为group by 后面的列名必须出现在select里面