题解 | 更新员工信息表

更新员工信息表

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

--先求更新表的每位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

全部评论

相关推荐

09-21 21:14
门头沟学院
否极泰来来来来:和他说:这里不好骂你,我们加个微信聊
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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