老卫带你学---SQL实战(9.获取所有部门当前manager的当前薪水情况,给出dept_no, emp_no以及salary)

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';
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值