我可能没说清楚,再给出更详细的说明:数据:
taskid  process   inputdate
1       开始开发  2005-05-01
1    正在开发  2005-06-10
1    完成开发  2005-07-01
2    开始开发  2006-08-01
2    完成    2006-09-01要取出的纪录是:
1    完成开发  2005-07-01
2    完成    2006-09-01 

解决方案 »

  1.   

    select distinct a.taskid,a.process,a.inputdate from tablea a,(select taskid,max(inputdate) from tablea group by taskid) b where a.taskid=b.taskid and a.inputdate=b.inputdate
      

  2.   

    select id,taskid,process,inputdate
    from(
    select a.*,row_number()over(partition by a.taskid order by a.inputdate desc) as rn
    from tablea a
    ) b
    where b.rn=1
      

  3.   

    select id,taskid,process,inputdate
    from(
    select a.*,row_number()over(partition by a.taskid order by a.inputdate desc) as rn
    from tablea a
    ) b
    where b.rn=1