题目索引

  • ​​SQL11 获取所有员工当前的manager​​

SQL11 获取所有员工当前的manager

题目描述
获取所有员工当前的(dept_manager.to_date=‘9999-01-01’)manager,如果员工是manager的话不显示(也就是如果当前的manager是自己的话结果不显示)。输出结果第一列给出当前员工的emp_no,第二列给出其manager对应的emp_no。
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​​));

如插入:
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_emp VALUES(10003,‘d004’,‘1995-12-03’,‘9999-01-01’);
INSERT INTO dept_emp VALUES(10004,‘d004’,‘1986-12-01’,‘9999-01-01’);
INSERT INTO dept_emp VALUES(10005,‘d003’,‘1989-09-12’,‘9999-01-01’);
INSERT INTO dept_emp VALUES(10006,‘d002’,‘1990-08-05’,‘9999-01-01’);
INSERT INTO dept_emp VALUES(10007,‘d005’,‘1989-02-10’,‘9999-01-01’);
INSERT INTO dept_emp VALUES(10008,‘d005’,‘1998-03-11’,‘2000-07-31’);
INSERT INTO dept_emp VALUES(10009,‘d006’,‘1985-02-18’,‘9999-01-01’);
INSERT INTO dept_emp VALUES(10010,‘d005’,‘1996-11-24’,‘2000-06-26’);
INSERT INTO dept_emp VALUES(10010,‘d006’,‘2000-06-26’,‘9999-01-01’);

INSERT INTO dept_manager VALUES(‘d001’,10002,‘1996-08-03’,‘9999-01-01’);
INSERT INTO dept_manager VALUES(‘d002’,10006,‘1990-08-05’,‘9999-01-01’);
INSERT INTO dept_manager VALUES(‘d003’,10005,‘1989-09-12’,‘9999-01-01’);
INSERT INTO dept_manager VALUES(‘d004’,10004,‘1986-12-01’,‘9999-01-01’);
INSERT INTO dept_manager VALUES(‘d005’,10010,‘1996-11-24’,‘2000-06-26’);
INSERT INTO dept_manager VALUES(‘d006’,10010,‘2000-06-26’,‘9999-01-01’);

答案`

select a.emp_no, b.emp_no as manager_no
from dept_emp as a join dept_manager as b
on a.dept_no = b.dept_no
and b.to_date = '9999-01-01'
and a.to_date = '9999-01-01'
and a.emp_no <> b.emp_no

`

刷SQL 题目练习笔记  中等难度_其它