9.获取所有部门当前manager的当前薪水情况,给出dept_no, emp_no以及salary
问题:
获取所有部门当前manager的当前薪水情况,给出dept_no, emp_no以及salary,当前表示to_date=‘9999-01-01’
CREATE TABLE dept_manager (
dept_no char(4) NOT NULL,
emp_no int(11) NOT NULL,
from_date date NOT NULL,
to_date date NOT NULL,
PRIMARY KEY (emp_no,dept_no));
CREATE TABLE salaries (
emp_no int(11) NOT NULL,
salary int(11) NOT NULL,
from_date date NOT NULL,
to_date date NOT NULL,
PRIMARY KEY (emp_no,from_date));
解决:
思想:
1、先连接两张表,限制条件是两张表的emp_no相同,即d.emp_no = s.emp_no
2、根据题意,要获取当前manager的当前salary情况,再加上限制条件dept_manager.to_date=‘9999-01-01’
and salaries.to_date='9999-01-01’即可(因为同一emp_no在salaries表中对应多条涨薪记录,而当salaries.to_date = '9999-01-01’时是该员工当前的薪水记录,而之所以dept_manager.to_date='9999-01-01’是因为一个人可能在不同的部门呆过。)
sql代码:
select dept_manager.dept_no,dept_manager.emp_no,salaries.salary
from dept_manager,salaries
where dept_manager.emp_no=salaries.emp_no
and dept_manager.to_date='9999-01-01'
and salaries.to_date='9999-01-01';

被折叠的 条评论
为什么被折叠?



