思路一:
**查询员工当前工资表 emp_sal** select de.emp_no,de.dept_no,s1.salary as emp_salary from dept_emp de,salaries s1 where de.emp_no=s1.emp_no and s1.to_date='9999-01-01' and de.to_date='9999-01-01' **查询经理当前工资表mag_sal** select dm.emp_no as manager_no,dm.dept_no,s2.salary as manager_salary from dept_manager dm,salaries s2 where dm.emp_no=s2.emp_no and s2.to_date='9999-01-01' and dm.to_date='9999-01-01' **联结表emp_sal和表mag_sal,连接条件部门编号相等,要求:员工工资>经理工资** select emp_sal.emp_no,mag_sal.manager_no, emp_sal.emp_salary,mag_sal.manager_salary from ( select de.emp_no,de.dept_no,s1.salary as emp_salary from dept_emp de,salaries s1 where de.emp_no=s1.emp_no and s1.to_date='9999-01-01' and de.to_date='9999-01-01' )as emp_sal inner join( select dm.emp_no as manager_no,dm.dept_no,s2.salary as manager_salary from dept_manager dm,salaries s2 where dm.emp_no=s2.emp_no and s2.to_date='9999-01-01' and dm.to_date='9999-01-01' )as mag_sal on emp_sal.dept_no=mag_sal.dept_no where mag_sal.manager_salary<emp_sal.emp_salary;
思路二:
select de.emp_no,dm.emp_no as manager_no, s1.salary as emp_salary,s2.salary as manager_salary from dept_emp de,dept_manager dm,salaries s1,salaries s2 where de.dept_no=dm.dept_no and de.emp_no=s1.emp_no and dm.emp_no=s2.emp_no and s1.salary>s2.salary and s2.to_date='9999-01-01' and s1.to_date='9999-01-01';