Employés et salaires

[20 minutes]

Soit le schéma relationnel :

1
Employe (#Num, Nom, Prenom, Age, Salaire, Fonction=>Fonction, Societe=>Societe)
2
Fonction (#Intitule, SalaireMin, SalaireMax, NbHeures)
3
Societe (#Nom, Pays, Activite)

Question

Écrivez une requête SQL permettant de sélectionner les noms de tous les directeurs de France.

Solution

1
SELECT Employe.Nom
2
FROM Employe JOIN Societe
3
ON  Employe.Societe=Societe.Nom
4
WHERE Employe.Fonction='Directeur' AND Societe.Pays='France'

Question

Écrivez une requête SQL permettant d'afficher le salaire de tous les employés en francs (sachant que le salaire dans la table est en euros et que un euro vaut 6.55957 franc).

Solution

1
SELECT Num, Nom, Salaire*6.55957 As SalaireEnFrancs
2
FROM Employe

Question

Écrivez une requête SQL permettant de vérifier que les salaires de chaque employé correspondent bien à ce qui est autorisé par leur fonction.

Solution

1
SELECT Employe.Salaire, Fonction.SalaireMin, Fonction.SalaireMax, (Employe.Salaire >= Fonction.SalaireMin AND Employe.Salaire <= SalaireMax) AS Correspond
2
FROM Employe JOIN Fonction
3
ON Employe.Fonction=Fonction.Intitule

Question

Écrivez une requête SQL permettant le passage aux 35 heures :

  • en modifiant le nombre d'heures travaillées pour chaque fonction (ramené à 35 s'il est supérieur à 35),

  • et en réajustant les échelles de salaire au pro-rata du nombre d'heures travaillées avant le passage aux 35 heures.

Solution

1
UPDATE Fonction
2
SET NbHeures=35, SalaireMin=SalaireMin*35/NbHeures, SalaireMax=SalaireMax*35/NbHeures
3
WHERE NbHeures>35