题目

获取员工其当前的薪水比其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`));
  • 我的解答
select de.emp_no,dm.emp_no as manager_no,
(select salary from salaries where emp_no=de.emp_no) as emp_salary,
(select salary from salaries where emp_no=dm.emp_no) as manager_salary
from dept_emp de
left join dept_manager dm on de.dept_no=dm.dept_no
left join salaries s on de.emp_no=s.emp_no
where s.to_date='9999-01-01' and
emp_salary>manager_salary

错误

  • 解答

思路1

**查询员工当前工资表 emp_sal**
select de.emp_no,de.dept_no,s1.salary as emp_salaryfrom dept_emp de,salaries s1where de.emp_no=s1.emp_noand s1.to_date='9999-01-01'and de.to_date='9999-01-01'
**查询经理当前工资表mag_sal**select dm.emp_no as manager_no,dm.dept_no,s2.salary as manager_salaryfrom dept_manager dm,salaries s2where dm.emp_no=s2.emp_noand s2.to_date='9999-01-01'and dm.to_date='9999-01-01'**联结表emp_sal和表mag_sal,连接条件部门编号相等,要求:员工工资>经理工资**
select emp_sal.emp_no,mag_sal.manager_no,
emp_sal.emp_salary,mag_sal.manager_salary
from (select de.emp_no,de.dept_no,s1.salary as emp_salaryfrom dept_emp de,salaries s1where de.emp_no=s1.emp_noand s1.to_date='9999-01-01'and de.to_date='9999-01-01'
)as emp_sal
inner join(select dm.emp_no as manager_no,dm.dept_no,s2.salary as manager_salaryfrom dept_manager dm,salaries s2where dm.emp_no=s2.emp_noand s2.to_date='9999-01-01'and dm.to_date='9999-01-01'
)as mag_sal
on emp_sal.dept_no=mag_sal.dept_no
where mag_sal.manager_salary<emp_sal.emp_salary;

思路2

select de.emp_no,dm.emp_no as manager_no,
s1.salary as emp_salary,s2.salary as manager_salary
from dept_emp de,dept_manager dm,salaries s1,salaries s2
where de.dept_no=dm.dept_no
and de.emp_no=s1.emp_no
and dm.emp_no=s2.emp_no
and s1.salary>s2.salary
and s2.to_date='9999-01-01'
and s1.to_date='9999-01-01';
  • 尝试

思路2:中文思路

查询 员工表.员工号 + 经理表 .员工号 + 工资表s1.员工工资 + 工资表s2.经理工资

员工表,经理表,工资表s1,工资表s2

条件 员工表和经理表部门号相等

并且 员工表和工资表s1员工号相同

并且 经理表和工资表s2员工号相同

并且 s1.salary>s2.salary

并且 日期符合

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

思路1:中文思路

查询 虚表1.员工号,虚表2.经理号,虚表1.员工工资,虚表2.经理工资

虚表1(包含员工的部门号,员工号,工资字段,日期限制) 内连接虚表2(包含经历的部门号,员工号,工资字段,日期限制)

on 虚表1的部门号和虚表2的部门号相同
并且 员工工资>经理工资

select emp_s.emp_no,mag_s.emp_no,emp_s.emp_salary,mag_s.manager_salary
from(select de.emp_no,de.dept_no,s1.salary as emp_salaryfrom dept_emp de,salaries s1where de.emp_no=s1.emp_noand de.to_date='9999-01-01' and s1.to_date='9999-01-01') as emp_s
inner join (select dm.emp_no,dm.dept_no,s2.salary as manager_salaryfrom dept_manager dm,salaries s2where dm.emp_no=s2.emp_noand dm.to_date='9999-01-01'and s2.to_date='9999-01-01') as mag_s
on emp_s.dept_no=mag_s.dept_no
where emp_s.emp_salary>mag_s.manager_salary

数据库SQL实战11_获取员工其当前的薪水比其manager当前薪水还高的相关信息,当前表示to_date=‘9999-01-01‘, 结果第一列给出员工的emp_no, 第二列给出其manager相关推荐

  1. 获取员工其当前的薪水比其manager的薪资还高的相关信息

    题目描述 获取员工其当前的薪水比其manager当前薪水还高的相关信息,当前表示to_date='9999-01-01', 结果第一列给出员工的emp_no, 第二列给出其manager的manage ...

  2. 牛客网数据库SQL实战25—— 获取员工其当前的薪水比其manager当前薪水还高的相关信息

    牛客网数据库SQL实战25-- 获取员工其当前的薪水比其manager当前薪水还高的相关信息 题目描述 获取员工其当前的薪水比其manager当前薪水还高的相关信息,当前表示to_date='9999 ...

  3. 牛客 数据库SQL实战 获取员工其当前的薪水比其manager当前薪水还高的相关信息

    题目描述:\color{blue}题目描述:题目描述: 获取员工其当前的薪水比其manager当前薪水还高的相关信息,当前表示to_date='9999-01-01', 结果第一列给出员工的emp_n ...

  4. 数据库SQL实战-- 获取员工其当前的薪水比其manager当前薪水还高的相关信息

    时间限制:1秒 空间限制:32768K 热度指数:23267 题目描述 获取员工其当前的薪水比其manager当前薪水还高的相关信息,当前表示to_date='9999-01-01', 结果第一列给出 ...

  5. 数据库SQL实战(牛客网):获取员工其当前的薪水比其manager当前薪水还高的相关信息

    获取员工其当前的薪水比其manager当前薪水还高的相关信息,当前表示to_date='9999-01-01', 结果第一列给出员工的emp_no, 第二列给出其manager的manager_no, ...

  6. 【数据库SQL实战】获取员工其当前的薪水比其manager当前薪水还高的相关信息

    https://www.nowcoder.com/practice/f858d74a030e48da8e0f69e21be63bef?tpId=82&tqId=29777&rp=0&a ...

  7. 数据库SQL实践25:获取员工其当前的薪水比其manager当前薪水还高的相关信息

    思想: 题目要求获取员工其当前的薪水比其manager当前薪水还高的相关信息,当前表示to_date='9999-01-01', 结果第一列给出员工的emp_no, 第二列给出其manager的man ...

  8. (困难)SQL练习25:获取员工其当前的薪水比其manager当前薪水还高的相关信息

    SQL练习25:获取员工其当前的薪水比其manager当前薪水还高的相关信息 题目描述 考察知识点 解题思路 题目描述 有一个,部门关系表 dept_emp 简况如下: 有一个部门经理表 dept_m ...

  9. SQL(16)--获取员工当前薪水比其manager薪水还高的相关信息

    题目描述 获取员工其当前的薪水比其manager当前薪水还高的相关信息,当前表示to_date='9999-01-01', 结果第一列给出员工的emp_no, 第二列给出其manager的manage ...

最新文章

  1. 迪杰斯特拉算法。简单理解。内含示例
  2. 逆转衰老!“70岁”小鼠经过数月治疗,肾脏皮肤血液细胞重返“年轻态”
  3. Unity钢铁以及玻璃材质的选择
  4. R语言应用实战系列(六)-基于R的人工神经网络ANN算法和KNN算法(k-Nearest Neighbour)
  5. cglib_cglib:缺少的手册
  6. oracle 添加字段
  7. VSS 2005 配置简明手册
  8. iOS底层探索之多线程(二)—线程和锁
  9. 如何在fedora安装Telegram
  10. 用c语言实现数字时钟课程设计,基于C51单片机的数字时钟课程设计(C语言,带闹钟).doc...
  11. hp1015驱动64位_惠普1015打印机驱动下载|惠普 1015驱动电脑版 - 极光下载站
  12. 牢记公式,ardupilot EKF2就是纸老虎(五)!
  13. tplink软件升级有用吗_tplink路由器固件更新的方法
  14. 在文章中主标题和副标题的格式问题
  15. 微型机器人正迎来发展,三大领域应用大有可为
  16. 虚拟主播怎么做出来的?今日安利:AI虚拟人物怎么弄?
  17. 2020-08-22
  18. [转]把自己从一个疯狂下载者变成一个学习者
  19. 云私钥MCK,云平台、公有云、服务器数据安全
  20. 微信小程序(七)注册

热门文章

  1. 工厂自动化的生产线属于计算机应用,计算机试题
  2. 芯片厂家GitHub库
  3. 机器学习——基础知识
  4. java 统计汉字个数_Java简单统计字符串中汉字,英文字母及数字数量的方法
  5. python批量放大图片
  6. Python之PIL图片操作
  7. ST MCSDK 初探
  8. 微信小程序——前端——抵扣券、优惠券样式
  9. 攻防世界pwn高手进阶(持续更新)
  10. 【AI with ML】第 5 章 :自然语言处理简介