Bonsoir à tous,

j'ai un énoncé avec correction mais je ne trouve pas comme la correction, pouvez vous m'éclairez svp, je vous met l'énoncé, les requêtes et la correction "officielle".

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)

Requête 10 :
Donner les noms des employés travaillant dans un département avec au moins un ingénieur.


Correction :


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
SELECT E2.ENOM 
           FROM EMP E1, EMP E2
          WHERE E1.DNO = E2.DNO
                AND E1.PROF = 'INGÉNIEUR';
Ma requête:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
SELECT ENOM
   FROM EMP
   WHERE EMP.DNO = (
     SELECT EMP.DNO
        FROM EMP
        WHERE PROF = 'ingénieur' );
Requête 11 : Donner le salaire et le nom des employés gagnant plus qu'un (au moins un) ingénieur.

Correction:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
SELECT E1.ENOM, E1.SAL 
           FROM EMP E1, EMP E2
          WHERE E2.PROF='INGENIEUR' 
                AND E1.SAL > E2.SAL;
ou

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
SELECT ENOM, SAL FROM EMP
          WHERE SAL > ANY (SELECT SAL 
                             FROM EMP
                             WHERE PROF='INGENIEUR');

Ma requête:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
SELECT ENOM , SAL
  FROM EMP
     WHERE SAL > (
      SELECT MIN (SAL)
       FROM EMP
       WHERE PROF= 'ingénieur' );
Requête 12 : Donner le salaire et le nom des employés gagnant plus que tous les ingénieurs.

Correction:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
SELECT ENOM, SAL FROM EMP
          WHERE SAL > ALL (SELECT SAL 
                             FROM EMP
                             WHERE PROF='INGENIEUR');
Ou

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
SELECT ENOM, SAL FROM EMP
          WHERE SAL >  (SELECT MAX(SAL) 
                             FROM EMP
                             WHERE PROF='INGENIEUR');

Ma requête:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
SELECT ENOM , SAL
  FROM EMP
     WHERE SAL > (
      SELECT MAX (SAL)
       FROM EMP
       WHERE PROF= 'ingénieur' );

Ps: je ne comprend rien à la correction, d'où sortent les "E1." "E2."...

Je débute et merci d'avance pour toute contribution, aussi modeste soit-elle.