但是这样无法得到学号的!说学号这个字段不在聚合函树也不在GROUP BY中
如select bj xh max(fs)from SC group by bj.....出错了。
请教怎么写??

解决方案 »

  1.   

    select bj, xh, max(fs) from SC group by bj.....
      

  2.   

    就是这样出错了啊,说SC.xh不在聚合函数也不在GROUP中啊。
      

  3.   

    select bj,xh,fs from SC
    where fs=(select max(fs) from SC)
    group by bj……
      

  4.   

    select bj,xh,fs from SC
    where fs=(select max(fs) from SC)
    group by bj,xh,fs 
      

  5.   

    不对吧,,,现在说字段max(wd) not found???!!!
      

  6.   

     打错字了。不对吧,,,现在说字段max(fs) not found???!!! 
      

  7.   

    哦,刚才理解错误,
    select bj,xh,max(fs) from SC
    group by bj,xh,fs
      

  8.   

    也不对,这样把所有的都选出来的,因为group by 中有学号,学号没想同的所以分了N组,每个记录都是一组了,全出来了。
      

  9.   


    select class,max(ca) from table1 group by class
      

  10.   

    select * from yourtable
    where (  banji, fenshu ) IN ( Select Banji, Max(Fenshu) 
                                  from yourtable group by banji )
      

  11.   

    方法1:可以采用select * from where fs=(select max(fs) form sc) group by by xh,fs来完成
    方法2:也可以采用山鸡的办法来完成。
    方法3:采用按分数在数据库中进行索引,同样也能起到作用。
      

  12.   

    to:sanjianxia(三剑侠)
    方法1:你没看到我回贴说不对吗?
    方法2:问题就是我问的,我自己说的答案根本就不对。。
    方法3:可否详细一点???to:pipai(我是屁派)
    说语法不对,好象IN前面的东西不能有多项的吧。
      

  13.   

    我在数据库那边看到的答案。应该是对的吧????select a.class,a.no,a.grade from yourtable a, ( select class,max(grade)as grade from yourtable group by class) b where a.class=b.class and a.grade=b.grade 
      

  14.   

    sql server下没试过,我是在oracle下试的,结果正确
      

  15.   

    Select * from sc where fs in (select max(fs) from sc group by bj)
      

  16.   

    to pipai(我是屁派)
    小弟对SQL所知甚少,请问IN 前面能不能有多项的?如果能的话,你的方法也是正确的啊。
      

  17.   

    对不起,刚才我在SqlServer7.0上作了试验,并看了sqlserver的帮助,SqlServer只支持单项的IN操作,看来只有hxshanji(山鸡) 自己查到的 select a.class,a.no,a.grade from yourtable a, ( select class,max(grade)as grade from yourtable group by class) b where a.class=b.class and a.grade=b.grade 可行,该语句我试过,可行