我有Guest表其中GID(主键,int),GName(Nvarchar),Zhx(int)为数据库中的字段
我想实现的是 查询表Guest中GName不重复的数据 其中查询过程中 zhx必须是相同GName中值最大的数据 
类似于:
GID   GName   zhx
1     Name   33
2     Name1  44
3     Name   55查询后的结果:
2     Name1  44
3     Name   55求高手指点!

解决方案 »

  1.   

    SELECT  *
    FROM    TB a
    WHERE   EXISTS ( SELECT 1
                     FROM   ( SELECT    MAX(zhx) zhx ,
                                        gname
                              FROM      TB
                              GROUP BY  gname
                            ) b
                     WHERE  a.gname = b.gname
                            AND a.zhx = b.zhx )
      

  2.   

    select * from Guest as A
    where not exists(select 1 from Guest where GName=A.GName and Zhx>A.Zhx)
      

  3.   

    SELECT  *
    FROM    TB a
    WHERE   EXISTS ( SELECT 1
                     FROM   ( SELECT    MAX(gid) gid ,
                                        MAX(zhx) zhx ,
                                        gname
                              FROM      TB
                              GROUP BY  gname
                            ) b
                     WHERE  a.gname = b.gname
                            AND a.zhx = b.zhx
                            AND A.gid = b.gid )