select
    EMPLOYEE_ID,
    POSITION,
    LAST_UPDATE_DT
from
    (
        select
            EMPLOYEE_ID,
            POSITION,
            LAST_UPDATE_DT,
            ROW_NUMBER() over (
                partition by
                    EMPLOYEE_ID
                order by
                    LAST_UPDATE_DT desc
            ) as ranks
        from
            (
                select
                    EMPLOYEE_INFO.EMPLOYEE_ID,
                    POSITION,
                    LAST_UPDATE_DT
                from
                    EMPLOYEE_INFO
                union
                select
                    EMPLOYEE_UPDATE.EMPLOYEE_ID,
                    NEW_POSITION as POSITION,
                    UPDATE_DT as LAST_UPDATE_DT
                from
                    EMPLOYEE_UPDATE
            ) as t1
    ) as t2
where
    ranks = 1;