Dans cette section, vous trouverez des ressources sur les cours que j'enseigne à savoir de la documentation, du code, des vidéos etc. Dès que je trouve quelque chose d'intéressant à partager, je le mettrai à disposition ici pour mes étudiants.
Devoir 3
##Auteur : Enseignant ##École : Collège Marie Victorin ##Session : Hiver 2026 ##Titre du cours : Introduction aux bases de données ##Titre du programme : Devoir #3 ##Version : 1.0 ##Date : 00/00/2026 ##Langage et version : SQL ##Moteur : SQL Server Express
-- ============================================================================== -- Les requêtes -- Base de donnéées : AdventureWorksEvalFR
Requete I ***************************************************************************************** Écrire une requête qui affiche les employés actifs embauchés depuis le 1er janvier 2008 et ayant soit au moins 40 heures de vacances, soit au moins 40 heures de maladie. On affichera les colonnes suivantes : • L’identifiant de l’employé • Le titre du poste • La date d’embauche • Le sexe • Les heures de vacances • Les heures de maladie Trier les résultats par date d’embauche croissante. ****************************************************************************/ -- Votre code ici USE AdventureWorksEvalFR; GO SELECT IDEntiteAffaires, TitrePoste, DateEmbauche, Sexe, HeuresVacances, HeuresMaladie FROM dbo.Employe WHERE EstActuel = 1 AND DateEmbauche >= '2008-01-01' AND ( HeuresVacances >= 40 OR HeuresMaladie >= 40 ) ORDER BY DateEmbauche;
Requete II ***************************************************************************************** Écrire une requête qui affiche la liste des employés actifs avec leur département actuel et leur quart de travail. Seuls les employés actuellement en poste dans un département doivent être affichés. • L’identifiant de l’employé • Le prénom • Le nom de famille • Le titre du poste • Le nom du département • Le groupe du département • Le nom du quart de travail *****************************************************************************************/ -- # Votre code ici SELECT e.IDEntiteAffaires, p.Prenom, p.NomFamille, e.TitrePoste, d.Nom AS NomDepartement, d.NomGroupe, q.Nom AS NomQuartTravail FROM dbo.Employe e INNER JOIN dbo.Personne p ON e.IDEntiteAffaires = p.IDEntiteAffaires INNER JOIN dbo.HistoriqueDepartementEmploye hde ON e.IDEntiteAffaires = hde.IDEntiteAffaires INNER JOIN dbo.Departement d ON hde.IDDepartement = d.IDDepartement INNER JOIN dbo.QuartTravail q ON hde.IDQuartTravail = q.IDQuartTravail WHERE e.EstActuel = 1 AND hde.DateFin IS NULL ORDER BY d.Nom, p.NomFamille, p.Prenom;
Requete III ***************************************************************************************** Écrire une requête qui affiche les départements qui comptent plus cinq (5) employés actifs et dont le taux horaire moyen du département est supérieur au taux horaire moyen global des employés actifs. On affichera les colonnes : • Le nom du département • Le groupe du département • Le nombre d’employés • Le taux horaire moyen *****************************************************************************************/ -- # Votre code ici -- ---------------------- -- version I -- ---------------------- SELECT d.Nom AS NomDepartement, d.NomGroupe, COUNT(e.IDEntiteAffaires) AS NombreEmployes, AVG(hp.Taux) AS TauxHoraireMoyen FROM dbo.Employe e INNER JOIN dbo.HistoriqueDepartementEmploye hde ON e.IDEntiteAffaires = hde.IDEntiteAffaires INNER JOIN dbo.Departement d ON hde.IDDepartement = d.IDDepartement INNER JOIN dbo.HistoriquePaieEmploye hp ON e.IDEntiteAffaires = hp.IDEntiteAffaires WHERE e.EstActuel = 1 AND hde.DateFin IS NULL AND hp.DateChangementTaux = ( SELECT MAX(hp2.DateChangementTaux) FROM dbo.HistoriquePaieEmploye hp2 WHERE hp2.IDEntiteAffaires = e.IDEntiteAffaires ) GROUP BY d.Nom, d.NomGroupe HAVING COUNT(e.IDEntiteAffaires) > 5 AND AVG(hp.Taux) > ( SELECT AVG(hp3.Taux) FROM dbo.Employe e3 INNER JOIN dbo.HistoriquePaieEmploye hp3 ON e3.IDEntiteAffaires = hp3.IDEntiteAffaires WHERE e3.EstActuel = 1 AND hp3.DateChangementTaux = ( SELECT MAX(hp4.DateChangementTaux) FROM dbo.HistoriquePaieEmploye hp4 WHERE hp4.IDEntiteAffaires = e3.IDEntiteAffaires ) ) ORDER BY TauxHoraireMoyen DESC;
W3schools
Python.org