oracle - Oracle SQL - 子查询以获取超过其 Job_Id 的 Max_Salary 的员工
问题描述
在 HR Schema 中,我们有一个表 jobs,每个 job id 都有最低和最高薪水。我必须使用子查询找到其 Job_Id 获得超过 Max_Salary 的员工。
我试图制作这个子查询,但我得到“没有找到数据”。
SELECT FIRST_NAME,SALARY, JOB_ID FROM HR.EMPLOYEES E WHERE SALARY >(SELECT MAX_SALARY FROM HR.JOBS J WHERE E.JOB_ID = J.JOB_ID );
提前致谢。
解决方案
WITH SALARY_DETAIL AS (SELECT JOB_ID, MAX(MAX_SALARY) AS MAX_SALARY FROM JOBS J GROUP BY J.JOB_ID)
SELECT E.FIRST_NAME, E.SALARY, E.JOB_ID FROM HR.EMPLOYEES E , SALARY_DETAIL S
WHERE S.JOB_ID = E.JOB_ID
AND E.SALARY > S.MAX_SALAR
推荐阅读
- image - 从 GitHub 下载的 ZIP 中损坏的图像文件
- r - 对栅格时间序列进行排名
- php - 为什么这显示到多个小数位?
- wordpress - 从 /wp-admin/edit.php?post_type=course 添加查看权限。角色是作者
- excel - Visual Basic 运行 QBFC13Lib,SDK,运行 GeneralSummaryReportQuery,响应时,无法将列名称作为文本获取
- spline - 如何使用goemdl / nurbs在另一个b样条上的点的法线平面上找到b样条上的点
- javascript - 如何使用 onClick 影响其他元素
- javascript - 使用 JSON 而不是 innerHTML 或属性从 Redux 填充 3rd 方元素
- r - mutate 函数不在 r 中添加列,它适用于代码运行但 env 中的原始数据框没有它
- javascript - Express.js 博客应用程序错误:按类别过滤帖子会引发“Cast to ObjectId failed”错误