我有一张表 XXMSC_PO_FORECAST_ADDON ,里边有俩字段 PLAN_ID 和 CREATE_DATE ,针对每个ID同一创建时间都有若干条数据,我想抽取最后产生的那批数据,怎样实现。我只找到下面的方法,不过耗时可能比较长,tx们有没有更好的方法,请指教:select * 
from XXMSC_PO_FORECAST_ADDON a
where (a.plan_id, a.creation_date) in
      (select b.plan_id,max(b.creation_date) 
       from XXMSC_PO_FORECAST_ADDON b 
       group by b.plan_id)

解决方案 »

  1.   

    select * 
    from XXMSC_PO_FORECAST_ADDON a
    where (a.plan_id, a.creation_date)= any (select b.plan_id,max(b.creation_date) 
           from XXMSC_PO_FORECAST_ADDON b 
           group by b.plan_id)
      

  2.   

    试试下面这句话,是否可以得到每个ID最后日期的记录
    select * 
    from XXMSC_PO_FORECAST_ADDON a
    where a.creation_date=
      (  select max(b.creation_date) from XXMSC_PO_FORECAST_ADDON b
         where  a.plan_id=b.plan_id 
      )