题目

获取员工其当前的薪水比其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. CF932G Palindrome Partition
  2. iOS Xcode个人常用插件
  3. python 加锁_python之给文件加锁(fcntl模块)
  4. 通用权限管理平台--数据模型定义
  5. extjs grid显示html,Extjs grid column里添加button等html标签,并增加点击事件
  6. Linux gtk开发教程,使用GTK+和Glade快速开发Linux图形界面
  7. golang 判断时间是否是 rfc3339_[Golang实现JVM第一篇] 知识准备amp;前言
  8. 打印输出Arraylist对整型字符增删改查方法开始结束的用时
  9. b-tree的索引页总览
  10. 计算机专业新手小白学编程如何选择笔记本电脑
  11. 《大数据原理与应用》林子雨:一. 大数据基础
  12. Python 人工智能:16~20
  13. 降噪蓝牙耳机哪个品牌好?降噪蓝牙耳机排行推荐
  14. html a标签发微信,a标签的特殊和文本的样式
  15. EVE-NG打开Wireshark提示拒绝访问
  16. mmdetection 安装配置全过程
  17. Codis对比Twemproxy
  18. 拼图android程序,可视化开发Android应用程序:拼图开发模式App Inventor
  19. 用C#实现控制台进度条
  20. s7填表指令att_PLC程序详解和初学者必须掌握的几个梯形图

热门文章

  1. Oracle 11g安装报错
  2. CSS3 渐变边框,按钮样式、设计图标、电子优惠券 详解!
  3. 相机上的这个自定义功能太好用了
  4. matlab吃cpu还是显卡_如何配置一台适合跑MATLAB的电脑
  5. 开源地图服务器 网站,开源WebGIS:地图发布与地图服务
  6. 在react框架中实现打印过程中踩的坑
  7. 计算机毕业设计Java传统文化知识竞赛系统(源码+系统+mysql数据库+lw文档
  8. 开学季,给Java开发学习者的开发工具选择指南
  9. 这种国家的外贸不做也罢
  10. C语言中的函数与数组详解