如果本题仅仅是查找各部门领导的薪水和编号的话,就是将两张表连接一下再查询,即:
select
s.emp_no,
s.salary,
s.from_date,
s.to_date,
d.dept_no
from
salaries as s
join
dept_manager as d
on
s.emp_no = d.emp_no
order by
s.emp_no asc
; 但是题目里有个“当前”,大概是指salaries表和dept_manager表中包含了所有在职和离职员工,因此需要把已经离职的员工去除。
离职员工的to_date应该是一个确切的日期,而在职员工的to_date都是“9999-01-01”,表示一直在职,故只需筛出所有to_date = ‘9999-01-01’的员工即可。
改进后:
select
s.emp_no,
s.salary,
s.from_date,
s.to_date,
d.dept_no
from
salaries as s
join
dept_manager as d
on
s.emp_no = d.emp_no
where
s.to_date = '9999-01-01'
and
d.to_date = '9999-01-01'
order by
s.emp_no asc
;
京公网安备 11010502036488号