题解 | 更新员工信息表

更新员工信息表

https://www.nowcoder.com/practice/1eb20d4bf7c5443da7b84105372c9070

with temp as (
    select 
    eu.employee_id,
    eu.UPDATE_DT,
    new_position,
    row_number() over(partition by EMPLOYEE_ID order by UPDATE_DT desc) as rnk
    from EMPLOYEE_UPDATE eu
),

temp1 as (
    select 
    ei.employee_id as EMPLOYEE_ID,
    case when 
    tp.update_dt > ei.last_update_dt then tp.new_position else ei.position end as POSITION,
    case when 
    tp.update_dt > ei.last_update_dt then tp.update_dt else ei.last_update_dt end as LAST_UPDATE_DT
    from EMPLOYEE_INFO ei 
    left join temp tp
    on ei.employee_id = tp.employee_id
    and tp.rnk = 1

)
select * from temp1
order by employee_id asc










全部评论

相关推荐

04-08 23:37
已编辑
东华大学 结构工程师
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务