天天看點

oracle 計算重複時間,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')