Analyser et traduire en clair les requêtes SQL suivantes :
1. SELECT PRENOM, NOM FROM EMPLOYES WHERE SALAIRE IS NOT NULL;
Sélectionner le PRENOM et le NOM dans la table EMPLOYES ou le SALAIRE n’est pas nul.
2. SELECT WDEPT, AVG (SALAIRE), MIN (SALAIRE) FROM EMPLOYES WHERE NOEMP > ‘00010’ GROUP BY WDEPT;
Sélectionner le DEPARTEMENT, le salaire moyen et le SALAIRE minimum dans la table EMPLOYES ou le numero_EMPLOYE (NOEMP) est supérieur à ‘00010’ trié par DEPARTEMENT
3. SELECT WDEPT, AVG (SALAIRE), MIN (SALAIRE) FROM EMPLOYES WHERE NOEMP > ‘00010’ GROUP BY WDEPT HAVING AVG (SALAIRE) >= 16000;
Sélectionner le DEPARTEMENT, le salaire moyen et le salaire minimum dans la table employés ou le numero_EMPLOYE (NOEMP) est supérieur à ‘00010’
regroupés par DEPARTEMENT avec un salaire moyen supérieur ou égal à 16000.
4. SELECT NOM, PRENOM FROM EMPLOYES WHERE SALAIRE IN (SELECT SALAIRE FROM employes where WDEPT = ‘B00’);
Sélectionner NOM, PRENOM dans la table EMPLOYES ou le SALAIRE existe avec le sélection du DEPARTEMENT = ‘B00’ dans la table EMPLOYES.
5. SELECT NOM, PRENOM FROM EMPLOYES WHERE SALAIRE > ANY (SELECT SALAIRE FROM employes where WDEPT = ‘B00’);
Sélectionner NOM, PRENOM dans la table EMPLOYES ou il existe un SALAIRE dans le DEPARTEMENT = ‘B00’ de la table EMPLOYES.
6. SELECT NOM, PRENOM FROM EMPLOYES WHERE SALAIRE > ALL (SELECT SALAIRE FROM employes where WDEPT = ‘B00’);
Sélectionner NOM, PRENOM dans la table EMPLOYES quelque soit le SALAIRE dans le DEPARTEMENT = ‘B00’ de la table employés
7. SELECT A.NOM, A.PRENOM, A.SALAIRE, A.WDEPT FROM EMPLOYES A WHERE EXISTS(SELECT * FROM EMPLOYES B WHERE A.WDEPT <> B.WDEPT AND A.SALAIRE = B.SALAIRE) ORDER BY A.WDEPT, A.SALAIRE ;
Selectionner tous les NOM, PRENOM,SALAIRE,DEPARTEMENT dans la table EMPLOYES distincts triés par DEPARTEMENT et SALAIRE.
Correction :
1. SELECT PRENOM, NOM FROM EMPLOYES WHERE SALAIRE IS NOT NULL;
Affichez tous les employés de la société.
2. SELECT WDEPT, AVG (SALAIRE), MIN (SALAIRE) FROM EMPLOYES WHERE NOEMP > ‘00010’ GROUP BY WDEPT;
Affichez tous les salaires moyen et minimum des employés dont le matricule est superieur à ‘00010’ de la société, regroupés par service.
3. SELECT WDEPT, AVG (SALAIRE), MIN (SALAIRE) FROM EMPLOYES WHERE NOEMP > ‘00010’ GROUP BY WDEPT HAVING AVG (SALAIRE) >= 16000;
Affichez tous les salaires moyen est superieur ou égale à 16000 des employés dont le matricule est superieur à ‘00010’ de la société, regroupés par service.
4. SELECT NOM, PRENOM FROM EMPLOYES WHERE SALAIRE IN (SELECT SALAIRE FROM employes where WDEPT = ‘B00’);
Affichez tous les salaires du departement ‘B00’
5. SELECT NOM, PRENOM FROM EMPLOYES WHERE SALAIRE > ANY (SELECT SALAIRE FROM employes where WDEPT = ‘B00’);
Affichez la liste des employés qui ont au moins un salaire du departement ‘B00’
6. SELECT NOM, PRENOM FROM EMPLOYES WHERE SALAIRE > ALL (SELECT SALAIRE FROM employes where WDEPT = ‘B00’);
Affichez la liste des employés qui ont au moins un salaire dans le departement ‘B00’
7. SELECT A.NOM, A.PRENOM, A.SALAIRE, A.WDEPT FROM EMPLOYES A WHERE EXISTS(SELECT * FROM EMPLOYES B WHERE A.WDEPT <> B.WDEPT AND A.SALAIRE = B.SALAIRE) ORDER BY A.WDEPT, A.SALAIRE ;
Afficher les employés qui ont le même salaire dans des departements différents.
Selectionner tous les noms, prenoms, salaires, departements dans la table employés distincts triés par departement et salaire