ORACLE语句多条重复记录中只取一条时间最近的记录

多条重复记录中只取一条时间最近的记录

select aa.forecast_no, t1.wgt jz, t1.sj zl_sj, t2.wgt mz, t3.wgt pz

     from Table1 aa
     left outer join (select a.*
                       from Table2 a
                      where a.lrdate =
                            (select max(b.lrdate)
                               from Table2 b
                              where a.forecast_no = b.forecast_no and  b.jl_flag='13')) t1
       on t1.forecast_no = aa.forecast_no
      and t1.jl_flag = '13'
   
     left outer join (select c.*
                       from Table2 c
                      where c.lrdate =
                            (select max(d.lrdate)
                               from Table2 d
                              where d.forecast_no = c.forecast_no and d.jl_flag='12')) t2
       on t2.forecast_no = aa.forecast_no
      and t2.jl_flag = '12'
   
     left outer join (select e.*
                       from Table2 e
                      where eee.lrdate =
                            (select max(f.lrdate)
                               from Table2 f
                              where e.forecast_no = f.forecast_no and  f.jl_flag='13' )) t3
       on t3.forecast_no = aa.forecast_no
      and t3.jl_flag = '11' 

    where aa.enter_time > To_date('2016-05-01', 'YYYY-MM-DD')



你可能感兴趣的:(Oracle)