Je souhaite utiliser des sous-requêtes dans SQL dans Oracle Express pour obtenir le salary_id des salaires les plus élevés que les employés obtiennent dans leurs départements. Les tableaux que j'ai sont:sous-requêtes dans Oracle SQL
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
D'abord, j'extrait le salaire maximum dans chaque département avec cette requête:
SELECT Max(e.SALARY)
FROM EMPLOYEE e
GROUP BY e.DEPT_ID
Les résultats sont deux records: 2000 et 2500
L'étape suivante est d'obtenir les notes de ces salaires, donc j'utilise ce qui suit:
SELECT GRADE
FROM SALARY
WHERE (SELECT Max(e.SALARY)
FROM EMPLOYEE e
GROUP BY e.DEPT_ID) BETWEEN LOWSAL AND HIGHSAL;
L'erreur tha t J'ai reçu est: ORA-01427: sous-requête à une rangée retourne plus d'une rangée
Comment puis-je faire cette commande SQL avec des sous-requêtes en SQL?
Comment la table des salaires est-elle liée à la table des employés? Où est la connexion? –