码迷,mamicode.com
首页 > 其他好文 > 详细

3、查找当前薪水详情以及部门编号dept_no

时间:2020-01-29 10:19:42      阅读:67      评论:0      收藏:0      [点我收藏+]

标签:title   可见   tab   详情   table   开始   har   sub   关系   

1、

题目描述

查找各个部门当前(to_date=‘9999-01-01‘)领导当前薪水详情以及其对应部门编号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_nosalaryfrom_dateto_datedept_no
10002 72527 2001-08-02 9999-01-01 d001
10004 74057 2001-11-27 9999-01-01 d004
10005 94692 2001-09-09 9999-01-01 d003
10006 43311 2001-08-02 9999-01-01 d002
10010 94409 2001-11-23 9999-01-01 d006

 

select s.emp_no,s.salary,s.from_date,s.to_date,d.dept_no
from salaries s join dept_manager d on d.emp_no=s.emp_no
where d.to_date=‘9999-01-01‘ and s.to_date=‘9999-01-01‘;

 

这里的坑主要在于两个表的逻辑关系,题目要求是薪水情况以及部门编号,再结合输出情况dept_no 被放到了最后一列,可见是主表是“salaries”。这里顺序错了就会提示:您的代码无法通过所有用例。。。

我知道了salaries的from_date是当前薪水的开始时间,dept_manager的from_date是作为部门经理的开始时间。当上部门经理之后可能还会有好几次加薪。所以两个表的from_date不一样

3、查找当前薪水详情以及部门编号dept_no

标签:title   可见   tab   详情   table   开始   har   sub   关系   

原文地址:https://www.cnblogs.com/guoyu1/p/12239628.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!