Salut à tous,
j'ai un exo avec des requêtes SQL à faire. J'ai la correction mais pour certaines que j'ai faites et qui ne sont pas identiques à la correction j'aimerais savoir si elles sont bonnes, autrement dit si mon raisonnement est bon.
Il n'y en a que 3, en PJ. Vous pouvez corriger directement sur le .doc si vous voulez et le renvoyer.
Merci de vos réponses.
Salutations.
Les tables
EMP(ENO, ENOM, PROF, DATEEMB, SAL, COMM, DNO)
ENO : numéro d'employé, clé
ENOM : nom de l'employé
PROF : profession (directeur n'est pas une profession)
DATEEMB : date d'embauche
SAL : salaire
COMM : commission (un employé peut ne pas avoir de commission)
DNO : numéro de département auquel appartient l'employé
DEPT(DNO, DNOM, DIR, VILLE)
DNO : numéro de département, clé
DNOM : nom du département
DIR : directeur du département (correspond à un n° d'employé)
VILLE : lieu du département (ville)
Les requêtes
Requête 17 : Donner les noms des employés du département COMMERCIAL embauchés le même jour qu'un employé du département PRODUCTION.
SELECT ENOM
FROM EMP
WHERE DATEEMB IN (
(SELECT DATEEMB
FROM EMP EComm
WHERE EComm.DNO=DEPT.DNO
AND DEPT.DNOM='Commercial')
INTERSECT
(SELECT DATEEMB
FROM EMP EProd
WHERE EProd.DNO=DEPT.DNO
AND DEPT.DNOM='Production')
);
Requête 18 : Donner les noms des employés embauchés avant tous les employés du département 1.
SELECT EMP.ENOM
FROM EMP E1, EMP Dept1
WHERE E1.DATEEMB > Dept1.DATEEMB
AND Dept1.DNO='1';
Requête 24 : Donner les noms des employés ayant le salaire maximum de chaque département.
SELECT ENOM,SAL,DNO
FROM EMP
GROUP BY DNO HAVING MAX(AVG(SAL));
Ou bien ?
SELECT ENOM,AVG(SAL),DNO
FROM EMP
GROUP BY DNO HAVING MAX(SAL);