首页 > 试题广场 >

获取员工其当前的薪水比其manager当前薪水还高的相关信息

[编程题]获取员工其当前的薪水比其manager当前薪水还高的相关信息
  • 热度指数:320625 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
有一个,部门关系表dept_emp简况如下:
emp_no
dept_no 
from_date 
to_date
10001 d001
1986-06-26 9999-01-01
10002 d001
1996-08-03 9999-01-01

有一个部门经理表dept_manager简况如下:
dept_no 
emp_no
from_date 
to_date
d001
10002
1996-08-03 9999-01-01

有一个薪水表salaries简况如下:
emp_no 
salary
from_date 
to_date
10001
88958 2002-06-22
9999-01-01
10002
72527 1996-08-03
9999-01-01

获取员工其当前的薪水比其manager当前薪水还高的相关信息,
第一列给出员工的emp_no,
第二列给出其manager的manager_no,
第三列给出该员工当前的薪水emp_salary,
第四列给该员工对应的manager当前的薪水manager_salary
以上例子输出如下:
emp_no manager_no emp_salary manager_salary
10001 10002 88958 72527
示例1

输入

drop table if exists  `dept_emp` ; 
drop table if exists  `dept_manager` ; 
drop table if exists  `salaries` ; 
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`));
INSERT INTO dept_emp VALUES(10001,'d001','1986-06-26','9999-01-01');
INSERT INTO dept_emp VALUES(10002,'d001','1996-08-03','9999-01-01');
INSERT INTO dept_manager VALUES('d001',10002,'1996-08-03','9999-01-01');
INSERT INTO salaries VALUES(10001,88958,'2002-06-22','9999-01-01');
INSERT INTO salaries VALUES(10002,72527,'1996-08-03','9999-01-01');

输出

10001|10002|88958|72527
头像 暴打拖拉猪
发表于 2020-05-30 16:03:43
思路一: **查询员工当前工资表 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 展开全文
头像 数据分析阿宇君
发表于 2020-08-28 20:05:51
法一:一表多用 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_man 展开全文
头像 不服苏
发表于 2021-02-08 17:28:25
select a.emp_no, b.emp_no manager_no, c.salary emp_salary, d.salary manager_salary from dept_emp a inner join dept_manag 展开全文
头像 Ding_123
发表于 2021-11-09 18:30:30
知识点 创建出两个表员工表和经理表 按照部门进行内连接,筛选条件为员工工资>经理工资的 代码 select b1.emp_no, manager_no, emp_salary, manager_salary from( select dept_no, de.emp_no, salary 展开全文
头像 N刻后告诉你
发表于 2020-05-19 20:36:18
题目:获取员工其当前薪水比其manager当前薪水还高的相关信息,当前表示to_date=‘9999-01-01’,结果第一列给出员工的emp_no,第二列给出其manager的manager_no,第三列给出该员工当前的薪水emp_salary,第四列给出该员工对应的manager当前的薪水man 展开全文
头像 华科菜菜子
发表于 2021-09-25 15:56:58
select d.emp_no, de.emp_no as manager_no, s.salary as emp_salary, se.salary as manager_salary from dept_emp as d, dept_manager as de, salaries a 展开全文
头像 自然数
发表于 2021-07-17 17:24:40
select t1.emp_no, t2.emp_no as manager_no, t1.salary as emp_salary, t2.salary as manager_salary from (select d.emp_no,d.dept_no,s.salary from dept_emp 展开全文
头像 数据流动DataFlow
发表于 2023-03-12 23:55:05
方法一:思路:1、先求出非 manager 的员工编号、部门、和薪水。2、再求出 manager 的员工编号、部门、和薪水。3、员工和经理间用部门编号 dept_no 关联起来,代码: select a.emp_no, manager_no, emp_salary, 展开全文
头像 努力刷题159
发表于 2023-04-02 19:02:02
理解笛卡尔积后join就完事了。 select de.emp_no , dm.emp_no, s.salary, s1.salary #目的:造了一张所有员工的薪资表以及加上一列其部门经理的薪资 #先造一张薪资表 from (dept_emp de join salaries s on de.emp 展开全文
头像 超超i7宝
发表于 2020-11-24 22:34:48
这道题还是比较有意思的 简单的构建两个表 分别为 员工工资表和经理工资表 并且同时salaries.emp_no = '9999-01-01' 即可 SELECT a.emp_no, b.emp_no, a.salary, b.salaryFROM (SELECT de.emp_no, s.sala 展开全文