解题思路
#对新的拼接组合表进行查询,获取结果........第六步 select a1.emp_no,a2.emp_no as manager_no,a1.salary as emp_salary,a2.salary as manager_salary from ( #查询员工的emp_no,salary,dept_no.......第二步 select e.emp_no,s.salary,e.dept_no from( #判断哪个是员工,并查询员工的所有信息.......第一步 select * from dept_emp where emp_no not in (select emp_no from dept_manager)) as e inner join salaries as s on s.emp_no = e.emp_no where s.to_date='9999-01-01' ) as a1 #链接新的员工信息表a1和领导信息表a2......第五步 inner join ( #查询领导的emp_no,salary,dept_no......第四步 select e2.emp_no,s.salary,e2.dept_no from( #判断哪个是领导,并获取领导的所有信息......第三步 select * from dept_emp where emp_no in (select emp_no from dept_manager)) as e2 inner join salaries as s on s.emp_no = e2.emp_no where s.to_date='9999-01-01' ) as a2 on a1.dept_no = a2.dept_no having emp_salary > manager_salary
实现代码
select a1.emp_no,a2.emp_no as manager_no,a1.salary as emp_salary,a2.salary as manager_salary from ( select e.emp_no,s.salary,e.dept_no from( select * from dept_emp where emp_no not in (select emp_no from dept_manager)) as e inner join salaries as s on s.emp_no = e.emp_no where s.to_date='9999-01-01' ) as a1 inner join ( select e2.emp_no,s.salary,e2.dept_no from( select * from dept_emp where emp_no in (select emp_no from dept_manager)) as e2 inner join salaries as s on s.emp_no = e2.emp_no where s.to_date='9999-01-01' ) as a2 on a1.dept_no = a2.dept_no having emp_salary > manager_salary

京公网安备 11010502036488号