欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

数据库SQL实战题:获取员工其当前的薪水比其manager当前薪水还高的相关信息(教程)

程序员文章站 2023-08-26 19:37:24
获取员工其当前的薪水比其manager当前薪水还高的相关信息,当前表示to_date=’9999-01-01’, 结果第一列给出员工的emp_no, 第二列给出其manage...

获取员工其当前的薪水比其manager当前薪水还高的相关信息,当前表示to_date=’9999-01-01’,

结果第一列给出员工的emp_no,

第二列给出其manager的manager_no,

第三列给出该员工当前的薪水emp_salary,

第四列给该员工对应的manager当前的薪水manager_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 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));

这类直接暴力使用where,注意题目的条件。

select e.emp_no as emp_no,m.emp_no as manager_no,s1.salary as emp_salary,s2.salary as manager_salary
from salaries s1,salaries s2,dept_emp e,dept_manager m
where e.emp_no=s1.emp_no
and m.emp_no=s2.emp_no
and e.dept_no=m.dept_no
and e.emp_no!=m.emp_no
and s1.salary>s2.salary
and e.to_date='9999-01-01'
and m.to_date='9999-01-01'
and s1.to_date='9999-01-01'
and s2.to_date='9999-01-01'