薪水比其manager当前薪水还高的相关信息 牛客网练习"/>
[编程题]获取员工其当前的薪水比其manager当前薪水还高的相关信息 牛客网练习
链接:=8121443
来源:牛客网
[编程题]获取员工其当前的薪水比其manager当前薪水还高的相关信息
- 热度指数:120259 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
- 算法知识视频讲解
获取员工其当前的薪水比其manager当前薪水还高的相关信息,当前表示to_date='9999-01-01',
结果第一列给出员工的emp_no,
第二列给出其manager的manager_no,
第三列给出该员工当前的薪水emp_salary,
第四列给该员工对应的manager当前的薪水manager_salary
CREATE TABLE `dept_emp` (
`emp_no` int(11) NOT NULL,
`dept_no` char(4) NOT NULL,
`from_date` date NOT NULL,
`to_date` date NOT NULL,
PRIMARY KEY (`emp_no`,`dept_no`));
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`));
输入描述:
无
输出描述:
emp_no | manager_no | emp_salary | manager_salary |
---|---|---|---|
10001 | 10002 | 88958 | 72527 |
10009 | 10010 | 95409 | 94409 |
示例1
输入
无
输出
无
SELECTde.emp_no AS emp_no,dm.emp_no AS manager_no,de.salary AS emp_salary,dm.salary AS manager_salary
FROM(SELECTde.emp_no,s.salary,de.dept_no FROMdept_emp AS deLEFT JOIN salaries AS s ON de.emp_no = s.emp_no WHEREs.to_date = '9999-01-01' ) AS deINNER JOIN (SELECTdm.emp_no,s.salary,dm.dept_no FROMdept_manager AS dmLEFT JOIN salaries AS s ON dm.emp_no = s.emp_no WHEREs.to_date = '9999-01-01' ) AS dm on de.dept_no = dm.dept_no
WHEREAND de.salary > dm.salary
首先,我们应该发现控制to_date的是工资表而不是员工表。然后只需要使用join即可。
更多推荐
[编程题]获取员工其当前的薪水比其manager当前薪水还高的相关信息 牛客网练习
发布评论