我想在 Oracle Express 中使用 SQL 中的子查询来获取员工在其部门中获得的最高薪水的薪水 ID。我有的表是:
Employee
Emp_id Salary Dept_id
100 1000 a101
200 2000 a101
300 2500 b102
Salary
Grade LowSal HiSal
1 500 900
2 901 2000
3 2001 3000
首先,我用这个查询提取了每个部门的最高工资:
SELECT Max(e.SALARY)
FROM EMPLOYEE e
GROUP BY e.DEPT_ID
结果是两条记录:2000 和 2500
下一步是获取这些薪水的等级,所以我使用以下内容:
SELECT GRADE
FROM SALARY
WHERE (SELECT Max(e.SALARY)
FROM EMPLOYEE e
GROUP BY e.DEPT_ID) BETWEEN LOWSAL AND HIGHSAL;
我收到的错误是:ORA-01427:单行子查询返回多于一行
如何使用 SQL 中的子查询执行该 SQL 命令?