Bienvenue

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.


Série d'exercices sur les requêtes sélection avec des conditions sur les groupe. La clause HAVING

Travaux dirigés 7

			##Auteur : Enseignant
			##École : Collège Marie Victorin 
			##Session : Hiver 2026
			##Titre du cours : Introduction aux bases de données
			##Titre du programme : Travaux dirigés 7
			##Version : 1.0
			##Date : 00/00/2026
			##Langage et version : SQL 
			##Moteur : SQL Server Express
		
			-- Les requêtes sélection dans le langage SQL

			-- Objectif : 
			-- Ce travail dirigé portera sur la création de requêtes sélection Avec les clauses GROUP BY et HAVING
			-- ============================================================================================================

			-- ***************************************************************************
			-- Vérifications à faire systématiquement AVANT d'écrire les requêtes
			-- Vérifier la structure de la table à utiliser, c'est à dire :
			--		Le nom de la table
			--		Le nom des colonnes
			--		Le type des colonnes
			--		Les données contenues dans la table

			-- Base de données à utiliser : Xtremefr

			-- ***************************************************************************

			-- ---------
			-- Requête 1
			-- Écrire une requête qui affiche la liste des clients ayant passé plus de 20 commandes
			-- On affichera : 
			-- le numéro de client
			-- Le le nombre de commandes

			-- Votre code ici
			SELECT 
				[ID client],
				COUNT(*) AS NbCommandes
			FROM 
				[Commandes]
			GROUP BY 
				[ID client]
			HAVING 
				COUNT(*) > 20
			ORDER BY 
				COUNT(*) DESC;			
		
			-- ---------
			-- Requête 2
			-- Écrire une requête qui affiche les employés ayant traité entre 100 et 200 commandes d'un montant supérieur à 500
			-- On affichera 
			-- le numéro de l'employé
			-- le nom de commande traitées

			-- Votre code ici
			SELECT 
				[ID employé],
				COUNT(*) AS NbCommandesTraitees
			FROM 
				[Commandes]
			WHERE
				[Montant commande] > 500
			GROUP BY 
				[ID employé]
			HAVING 
				COUNT(*) BETWEEN 100 AND 200
			ORDER BY 
				COUNT(*) DESC;
		
			-- ---------
			-- Requête 3
			-- Écrire une requête qui affiche les produits de plus de 500$ commandés plus de 50 fois
			-- La liste affichera le montant des commandes les élevés en premier
			-- On affichera : 
			-- le numéro du produit
			-- la quantité totale commandée

			-- Votre code ici
			SELECT 
				[ID produit],
				SUM([Quantité]) AS QuantiteTotale
			FROM 
				[Détails des commandes]
			WHERE
				[Prix unitaire] > 500
			GROUP BY 
				[ID produit]
			HAVING 
				SUM([Quantité]) > 50
			ORDER BY 
				SUM([Quantité]) DESC;
		
			-- ---------
			-- Requête 4
			-- Écrire une requête qui affiche la liste des commandes par mois en 2005 avec le nombre de commandes compris entre 100 et 110
			-- On affichera : 
			-- le mois de la commande
			-- le nombre de commandes

			-- Votre code ici
			SELECT 
				MONTH([Date de commande]) AS Mois,
				COUNT(*) AS NbCommandes
			FROM 
				[Commandes]
			WHERE 
				YEAR([Date de commande]) = 2005
			GROUP BY 
				MONTH([Date de commande])
			HAVING 
				COUNT(*) BETWEEN 100 AND 110
			ORDER BY 
				MONTH([Date de commande]);
		

W3schools

Python.org