编号   姓名   部门  奖金  月份
001     A     AAA    100   2
001     A     AAA    200   3
002     B     BBB    300   1
002     B     BBB    200   5
    求:按个人的奖金最高项的数据,即:
编号   姓名   部门  奖金  月份
001     A     AAA    200   3 
002     B     BBB    300   1

解决方案 »

  1.   

    Select * From 表 B,(Select 编号,姓名,部门,max(奖金) From 表 Group By 编号,姓名,部门) A WHere A.编号=B.编号 AND A.姓名=B.姓名 AND A.部门=B.部门
      

  2.   

    create table T(编号 varchar(10), 姓名 varchar(10), 部门 varchar(10), 奖金 int, 月份 int)
    insert T select  '001',     'A',     'AAA',    100,   2
    union all select '001',     'A',     'AAA',    200,   3
    union all select '002',     'B',     'BBB',    300,   1
    union all select '002',     'B',     'BBB',    200,   5select * from T as tmp
    where not exists(select 1 from T where 编号=tmp.编号 and 奖金>tmp.奖金)--result
    编号         姓名         部门         奖金          月份          
    ---------- ---------- ---------- ----------- ----------- 
    001        A          AAA        200         3
    002        B          BBB        300         1(2 row(s) affected)