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

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

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

-- 两张表,在from里内连接
-- 1、员工id,部门id,薪水 emp
-- 2、部门、部门最高薪水 s2
-- 利用两张表组成 emp_No,dept_no,salary,maxSalary
-- 注意在maxSalary中,代表的是每个部门的最高工资,检测该部门中,员工(主键)的工资是否等于最高工资,如果等于就返回
-- 不会出现A部门的员工工资等于B部门最高工资被返回,因为maxSalary代表的是该部门的最高工资,只有部门和最高工资一致才会返回

select emp.dept_no,emp.emp_no,s2.maxSalary
from 
(
    select e.emp_no,e.dept_no,s.salary
    from dept_emp as e inner join salaries as s
        on e.emp_no = s.emp_no
    where e.to_date = '9999-01-01' and s.to_date = '9999-01-01'
)as emp inner join 
(
    select e.dept_no,max(s.salary) as maxSalary
    from dept_emp as e inner join salaries as s
        on e.emp_no = s.emp_no
    where e.to_date = '9999-01-01' and s.to_date = '9999-01-01'
    group by dept_no
)as s2 
on emp.dept_no = s2.dept_no
where emp.salary = s2.maxSalary
order by emp.dept_no;
全部评论

相关推荐

11-03 14:38
重庆大学 Java
AAA求offer教程:我手都抬起来了又揣裤兜了
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
1
收藏
分享
牛客网
牛客企业服务