题解 | #获取每个部门中当前员工薪水最高的相关信息#

获取每个部门中当前员工薪水最高的相关信息

http://www.nowcoder.com/practice/4a052e3e1df5435880d4353eb18a91c6

思路:倒推法

结果:每个部门中当前员工薪水最高的相关信息 = 员工信息 加 薪水及部门在 部门最高薪水表 内;
倒推1:部门最高薪水表 = 含部门的薪水表 按照 部门 分组求最大薪水;
倒推2:含部门的薪水表 = 员工信息表 和 薪水表 多条件查询(由于日期都是一天,就没有考虑 “当前”,若是多月薪水表可以加 to_date = 'now_date')
select -- 每个部门中当前员工薪水最高的相关信息
dept_emp.dept_no
,dept_emp.emp_no
,salaries.salary
from dept_emp,salaries
where dept_emp.emp_no = salaries.emp_no -- 这里还是多表查询,也可以用连接
and (dept_emp.dept_no, salaries.salary) in
(
    select -- 部门最高薪水表
    dept_no
    ,max(salary) maxSalary
    from (
        select  -- 含部门的薪水表
        de.dept_no dept_no
        ,de.emp_no emp_no
        ,sa.salary salary
        from dept_emp de,salaries sa 
        where de.emp_no = sa.emp_no) sa_emp 
    group by sa_emp.dept_no)
order by dept_emp.dept_no
全部评论

相关推荐

牛客771574427号:恭喜你,华杰
点赞 评论 收藏
分享
评论
1
收藏
分享
牛客网
牛客企业服务