3 查詢當前薪水詳情以及部門編號dept no

2021-08-28 21:00:11 字數 1905 閱讀 7949

題目描述

查詢各個部門當前(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_no

salary

from_date

to_date

dept_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

思路:注意看題目所給出的輸出資料的順序:emp_no      salary      from_date      to_date     dept_no

查詢時也要按照這個順序來查;再有就是注意表salaries的員工編號emp_no應該與表dept_manager中的員工編號emp_no相同;

最後乙個細節,開始時間from_date應該是這個人的當前薪水的開始時間,而表dept_manager中的是這個人來到這個部門的開始時間,所以應該選salaries中的from_date 。

四種方法:

/*select

e.last_name,

e.first_name,

d.dept_no

from

employees e,

dept_emp d

where

e.emp_no = d.emp_no;*/

/*select

e.last_name,

e.first_name,

d.dept_no

from

employees e

natural join dept_emp d;*/

/*select

e.last_name,

e.first_name,

d.dept_no

from

employees e

inner join dept_emp d on e.emp_no = d.emp_no;*/

select

e.last_name,

e.first_name,

d.dept_no

from

dept_emp d

natural left join employees e;

查詢當前薪水詳情以及部門編號dept no

查詢各個部門當前 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,...

查詢當前薪水詳情以及部門編號dept no

查詢各個部門當前 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,...

查詢當前薪水詳情以及部門編號dept no

題目內容 查詢當前薪水詳情以及部門編號dept no 結果 不通過 select salaries.dept manager.dept no from dept manager inner join salaries on salaries.emp no dept manager.emp no wh...