比如我有一张表,分问 A B C D E F 字段 F字段为版本号,A,B,C, F字段为主建,我要查出基于A,B,C,F段不同的情况下并且F字段为最大值的所有行
比如我有一张
   A    B   C   D   E   F  
   1    01  01  a   b   0.1
   1    01  01  a   b   0.2
   1    01  01  a   b   0.3
   2    01  02  a   b   0.1
   2    01  02  a   b   0.2
   2    01  02  a   b   0.3
   3    01  01  a   b   0.3
   3    01  01  a   b   0.4
   3    01  01  a   b   0.5像以上的这张表,我要查出 A,B,C字段都相同的情况下查出F字段最大的那个值的一行,以上我查出来的结果要为
   A    B   C   D   E   F
   1    01  01  a   b   0.3
   2    01  02  a   b   0.3
   3    01  01  a   b   0.5请高手指点。

解决方案 »

  1.   

    --方法一
    Select * From 表 A Where Not Exists(Select F From 表 Where A = A.A And B = A.B And C = A.C And F > A.F)--方法二
    Select * From 表 A Where F = (Select Max(F) From 表 Where A = A.A And B = A.B And C = A.C)--方法三
    Select A.* From 表 A 
    Inner Join
    (Select A, B ,C, Max(F) As F From 表 Group By A, B, C) B
    On A.A = B.A And A.B = B.B And A.C = B.C And A.F = B.F
      

  2.   

    方法四:Select * From 表 A Where F 
    (Select count(1) From 表 Where A = A.A And B = A.B And C = A.C and F>A.F) = 0
      

  3.   

    我请问下楼上的高手我就一张表啊,好比这个表的名字叫 user 
    我怎么看到你上面好象有2张表啊?你能不能写的清楚点啊?
      

  4.   

    zhangqin110() ( ) 信誉:100  2007-08-07 09:19:49  得分: 0  
     
     
       我请问下楼上的高手我就一张表啊,好比这个表的名字叫 user 
    我怎么看到你上面好象有2张表啊?你能不能写的清楚点啊?
      
     
    -----------------------
    使用的就是一張表。如果表名是user,try
    --方法一
    Select * From [user] A Where Not Exists(Select F From [user] Where A = A.A And B = A.B And C = A.C And F > A.F)--方法二
    Select * From [user] A Where F = (Select Max(F) From [user] Where A = A.A And B = A.B And C = A.C)--方法三
    Select A.* From [user] A 
    Inner Join
    (Select A, B ,C, Max(F) As F From [user] Group By A, B, C) B
    On A.A = B.A And A.B = B.B And A.C = B.C And A.F = B.F
      

  5.   

    Select * From 表 A Where Not Exists(Select F From 表 Where A = A.A And B = A.B And C = A.C And F > A.F)
    ----------------
    就拿这句来说:就是在表中不存在按照A,B,C分组后F还比我大的记录.那么查询出来就是分组去最大的记录
      

  6.   

    2个表都是一张表一张表里面的数据进行一对一比较,找出最大的
    --方法一
    可以这么理解,条件是找出 不存在 (Not exists ) 比当前值更小( F(当前值) > A.F(进行比较的值) )的记录 , 那么当前值就是最大的
      

  7.   

    paoluo(一天到晚游泳的鱼) ( )  你真是高手。