题解 | 想不通的时候就动手在草稿纸上写写

获取员工其当前的薪水比其manager当前薪水还高的相关信息

https://www.nowcoder.com/practice/f858d74a030e48da8e0f69e21be63bef

select
    d1.emp_no emp_no,
    d2.emp_no manager_no,
    d1.salary emp_salary,
    d2.salary manager_salary
from
    (
        select
            de.emp_no,
            de.dept_no,
            sa.salary
        from
            dept_emp de
            inner join salaries sa on de.emp_no = sa.emp_no
            left join dept_manager dm on de.emp_no = dm.emp_no
            and de.dept_no = dm.dept_no
        where
            dm.emp_no is null
            and de.to_date = '9999-01-01'
    ) d1 #员工表
    join (
        select
            de.emp_no,
            de.dept_no,
            sa.salary
        from
            dept_emp de
            inner join salaries sa on de.emp_no = sa.emp_no
            left join dept_manager dm on de.emp_no = dm.emp_no
            and de.dept_no = dm.dept_no
        where
            dm.emp_no is not null
            and de.to_date = '9999-01-01'
    ) d2 #manager表
    on d1.dept_no = d2.dept_no
where
    d1.salary > d2.salary

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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