--先求更新表的每位employee_id的最后一次更新数据
with tiaojian as (
select 
EMPLOYEE_ID,
UPDATE_DT,
NEW_POSITION
from(
select 
EMPLOYEE_ID,
UPDATE_DT,
NEW_POSITION,
dense_rank()over(partition by EMPLOYEE_ID order by UPDATE_DT desc) as py
from EMPLOYEE_UPDATE
) as t 
where
t.py=1
)
--连接表并判断更新日期和初始日期的大小,谁大输出谁的。
select 
t.employee_id,
case when UPDATE_DT>ef.LAST_UPDATE_DT then NEW_POSITION else position end as POSITION,
case when UPDATE_DT>ef.LAST_UPDATE_DT then UPDATE_DT else LAST_UPDATE_DT end  as LAST_UPDATE_DT
from tiaojian t inner join  EMPLOYEE_INFO ef 
on t.EMPLOYEE_ID=ef.EMPLOYEE_ID
order by t.employee_id