表结构及数据
ID  姓名  工资  时间
1   a     134   2007
2   b     23    2007
3   c     76    2007
4   a     1351  2007
5   b     424   2007
分别找出 a b c 的最大工资---注意了:得到最大工资不难,现在要得到的是,得到分别的最大值的ID号

解决方案 »

  1.   

    select name , max(pay) from table group by name
      

  2.   

    搞错了 -_-!, 
    SELECT name, id, pay
    FROM ta
    WHERE ((name + CAST(pay AS varchar(10))) IN
              (SELECT (name + CAST(MAX(pay) AS varchar(10))) AS expr1
             FROM ta
             GROUP BY name))
      

  3.   

    那就再来一次Group By 试试
    SELECT name, max(id) as id
    FROM ta
    WHERE ((name + CAST(pay AS varchar(10))) IN
              (SELECT (name + CAST(MAX(pay) AS varchar(10))) AS expr1
             FROM ta
             GROUP BY name))
    GROUP BY name