解决方案 »

  1.   

    select max(grade) from tablename group by cno 
      

  2.   

    大家帮忙想想,我看了shakaqrj 说的,好像不一样喔
      

  3.   

    ??
    你用的是什么数据库阿怎么会不一样?
    access下的: 
    SELECT   * 
    FROM   t   AS   t1 
    WHERE   t1.grade   in( 
    SELECT   top   1   grade 
    FROM   t   
    where   t.sno=t1.sno
    order   by   grade   desc 
    ); 
    结果
    2004374110,124,91  
    2004374110,126,91  
    2004374111,124,91  
    2004374111,123,91  
    2004374111,126,91 
      

  4.   

    6楼shakaqrj不对,我要的是每门课最高分的那个人,每一门课只要一个人。sqlserver数据库来的。你的子查询只是返回所有课程成绩中最高的和
    SELECT       *   
    FROM       sc       AS       t1   
    WHERE       t1.grade       =(   
    SELECT       top       1       grade   
    FROM       sc      
    order       by       grade       desc   
    );是一样的,没用,不符合要求
      

  5.   

    我觉得这样就可以了,但是还是列出成绩相等的人
    select * from sc where(cno+grade)
    in (select cno+max(grade) from sc group by cno ) order by cno
    谢谢shakaqrj,虽然他的答案不是我想要的
      

  6.   

    select * from 表名 
    where max(grade)
    order by cno