zoukankan      html  css  js  c++  java
  • 11.20

    一、题目描述

    获取所有员工当前的(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 dept_emp.emp_no,dept_manager.emp_no manager_no FROM dept_emp 
    inner join dept_manager on dept_emp.dept_no=dept_manager.dept_no
    WHERE dept_manager.to_date='9999-01-01' 
    and not dept_emp.emp_no=dept_manager.emp_no

    二、题目描述

    获取所有部门中当前(dept_emp.to_date = '9999-01-01')员工当前(salaries.to_date='9999-01-01')薪水最高的相关信息,给出dept_no, emp_no以及其对应的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 `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_emp VALUES(10003,'d001','1996-08-03','1997-08-03');

    INSERT INTO salaries VALUES(10001,90000,'1986-06-26','1987-06-26');
    INSERT INTO salaries VALUES(10001,88958,'2002-06-22','9999-01-01');
    INSERT INTO salaries VALUES(10002,72527,'1996-08-03','1997-08-03');
    INSERT INTO salaries VALUES(10002,72527,'2000-08-02','2001-08-02');
    INSERT INTO salaries VALUES(10002,72527,'2001-08-02','9999-01-01');
    INSERT INTO salaries VALUES(10003,90000,'1996-08-03','1997-08-03');

    答案

    select dept_no,salaries.emp_no,max(salary) from salaries
    inner join dept_emp on salaries.emp_no=dept_emp.emp_no
    where dept_emp.to_date = '9999-01-01' and salaries.to_date='9999-01-01'
    group by dept_emp.dept_no
  • 相关阅读:
    C#调用webservice
    C#调用java方法踩坑记
    GitHub
    oracle之在java中调用
    oracle之数据恢复(delete误删)
    word之高级
    word之个人设置
    word之常用功能
    word
    git之摘抄
  • 原文地址:https://www.cnblogs.com/wbf980728/p/14012836.html
Copyright © 2011-2022 走看看