数据库结构如下:
TableA: Salary(薪水)
  EmpID                 varchar(10)     not null
  DepartID              varchar(5)      not null             foreign key references Department(DepartID)
  Salary                   numeric(12)   null

TableB: Department(部门)
  DepartID              varchar(5)
  DepartName         varchar(50)

TableC: Employee(雇员)
  EmpID                  varchar(10)     not null             primary key,
  EmpName             varchar(20)     not null

要求:写一个SQL语句,找出薪水为第三高的雇员的名字,所在部门以及薪资。

解答:
为了方便,使用Access创建上面3个表,如图所示(因为是外包工,所以用的日文的office,非亲日!)

数据如图:

思路:
    从高到低,取出薪资的前3名,再在这3名中取最小值。

SQL语句如下:
SELECT E.EmpName, S.Salary, D.DepartName                   --取雇员名字,薪资数,部门名
FROM t_Employee AS E, t_Salary AS S, t_Department AS D
WHERE S.EmpID=E.EmpID
AND S.DepartID=D.DepartID
AND S.EmpID in(
      SELECT S.EmpID FROM t_Salary S
      WHERE S.Salary in(
          SELECT min(S.Salary) FROM t_Salary S                    --在取出的前3名中取最小值
          WHERE S.Salary in(
              SELECT TOP 3 S.Salary FROM t_Salary S ORDER BY S.Salary DESC    --从高到低取薪资前3名
          )
      )
)
AND S.DepartID in(
      SELECT S.DepartID FROM t_Salary S
      WHERE S.Salary in(
          SELECT min(S.Salary) FROM t_Salary S
          WHERE S.Salary in(
              SELECT TOP 3 S.Salary FROM t_Salary S ORDER BY S.Salary DESC
          )
      )
);

运行结果:

高手飘过,呵呵 :-)

转载于:https://www.cnblogs.com/temptation/archive/2007/02/08/645134.html

[原] 求薪水第三高的雇员的SQL题(图解)相关推荐

  1. 每日一道SQL题(第N高的薪水)

    关于数据库中写sql的问题,感觉最常见的就是薪水方面的 拿到一道sql题,首先感觉一下,可能会出现的问题,比如这道题,薪水问题,薪水会不会出现同名同薪的问题??要怎么考虑? 又比如mysql怎么写?如 ...

  2. 求薪水最高的第6到第10个人

    求薪水最高的第6到第10个人 Select ename,sal,r from (select ename,sal,rownum r from (select ename,sal from emp or ...

  3. 如何用python计算函数的值域_(完整版)求函数定义域及值域方法及典型题归纳

    范文 . 范例 . 指导 . 参考 < 一 > 求函数定义域.值域方法和典型题归纳 一.基础知识整合 1. 函数的定义:设集合 A 和 B 是非空数集,按照某一确定的对应关系 f , 使得 ...

  4. 表达式求值问题 数据结构_【每日一题51】实际问题与一次函数 看图象求表达式 由表达式求值...

    关注"中考数学当百荟",感谢您的支持! 51.如图,折线MNP表示汽车耗油量y与速度x之间的关系,其中30≤x≤120.已知线段NP表示函数关系中,速度每增加1 km/h,耗油量增 ...

  5. sql三张表的搜索要满足5种搜索条件的模糊搜索_面试三轮我倒在了一道 SQL 题上……| 原力计划...

    作者 | 牧小农的夏天 责编 | 王晓曼 出品 | CSDN博客 前言 最近小农在找工作,因为今年疫情的特殊原因,导致工作不是特别好找,所以一旦有面试电话,如果可以,都会去试一试,刚好接到一个面试邀请 ...

  6. java求最大公约数_10道java经典算法题,小白必备,每一题都能提升你的java能力...

    JAVA经典算法 跪求关注,祝关注我的人都:身体健康,财源广进,福如东海,寿比南山,早上贵子,从不掉发! 更多java资料可以私信我领取! [程序1] 题目:古典问题:有一对兔子,从出生后第3个月起每 ...

  7. c++ 求四边形面积和周长_C语言编程题 题目:任意输入4个点,求围成四边形的面积是多少?...

    C语言编程题:任意输入4个点,求围成四边形的面积是多少.代码如下: #include "stdio.h" #include "math.h" void main ...

  8. 有关完全二叉树求节点数和前缀树求字符串是否重复的两道算法题

    1.给定一棵完全二叉树的头节点head,求其中的节点个数 递归的方法,时间复杂度为O((logN)²) 首先递归出头节点的左子树的最大深度H,之后再递归头节点的右子树的深度是否等于H,若相等则表示,头 ...

  9. 【POJ - 1523】SPF(Tarjan求割点,求分割成的连通块数,模板题,tricks)

    题干: Consider the two networks shown below. Assuming that data moves around these networks only betwe ...

  10. c语言编程和PS,求高人剖析下这道C语言编程题(PS:越详细越好)

    满意答案 红太阳7107 2013.06.04 采纳率:56%    等级:9 已帮助:315人 求24点的经典程序,如下: #include #include int enumerate(int a ...

最新文章

  1. 工作?生活?快乐吗?
  2. ZZUOJ1196: 单调数
  3. matlab读取正则找科学,MATLAB常用正则表达式记录
  4. 3-5:类与对象中篇——默认成员函数之运算符重载
  5. android显示通知栏Notification以及自定义Notification的View
  6. 联合国总部宣布75周年活动用腾讯会议和企业微信举行
  7. 如果你正在使用CocoaPods,你的.gitignore会有什么?
  8. android 4.0 蓝牙分析之一
  9. 修改docker内mysql配置后无法启动解决方法
  10. win7开机动画_win7系统怎么修改开机动画 win7系统开机动画修改方法
  11. 快解析 : 管家婆A8远程访问解决方案
  12. 杂勘复Intrepid Geophysics GeoModeller 2016 v3.3.0 Win64 1CD质模建
  13. 网站在线协作工具 onlyoffice在线协作
  14. 基于bootstrap,个人简历网页模板,响应式布局
  15. uniapp小程序体验版-白屏现象
  16. 消防应急照明和疏散指示系统在综合大楼(楼宇建筑)的研究与应用
  17. ECharts中使用tooltip时鼠标移入抖动问题
  18. 使用vlc串流http视频链接
  19. 网友微博晒父母爱情 老爸每天给妈妈写情书
  20. IDEA创院理事长沈向洋:人工智能飞速发展之下呈现三大新趋势

热门文章

  1. 详解多维数组与指针之间的关系
  2. 案例33:灭火器及其配置验收案例分析
  3. (轉貼) 如何解決MegaCore IP 6.0安裝時-6001的錯誤? (IC Design) (MegaCore)
  4. ABP官方文档翻译 5.1 Web API控制器
  5. EntityFramework Core并发导致显式插入主键问题
  6. jQuery获取元素坐标
  7. FTT字体绘制,2D阶段
  8. FtpWebRequest(转)---关于C/S中文件的上传,下载,获得文件列表
  9. 对大家的工作和职业方向有益才是我的最终目的
  10. npm 安装 -D 和-S的区别