题解 | 更新员工信息表

更新员工信息表

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

with u1 as(
    select EMPLOYEE_ID,UPDATE_DT,NEW_POSITION,row_number()over(partition by EMPLOYEE_ID order by UPDATE_DT desc) as rk
    from EMPLOYEE_UPDATE),
    u2 as(
    select EMPLOYEE_ID,UPDATE_DT,NEW_POSITION
    from u1 where rk=1)
select e.EMPLOYEE_ID as EMPLOYEE_ID,case when u2.UPDATE_DT>=e.LAST_UPDATE_DT then u2.NEW_POSITION else e.POSITION end as POSITION,
case when u2.UPDATE_DT>=e.LAST_UPDATE_DT then u2.UPDATE_DT else e.LAST_UPDATE_DT end as LAST_UPDATE_DT
from u2 join EMPLOYEE_INFO e on u2.EMPLOYEE_ID=e.EMPLOYEE_ID
order by EMPLOYEE_ID

全部评论

相关推荐

不愿透露姓名的神秘牛友
03-20 12:46
瘦嘟嘟右卫门:百度文库网盘的暑期也没约面吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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