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

Travaux dirigés 5

			##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 5
			##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 dans le langage SQL
			-- ===================================================================================

			-- ***************************************************************************
			-- 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 non nord-américains, propriétaires et qui ont acheté l’année dernière pour moins de 50 000 eur. 
			-- La liste sera triée en ordre croissant par pays et en ordre décroissant du montant d’achat.
			-- On affichera : 
			-- le nom du client
			-- le poste occupé par le contact chez le client
			-- les ventes de l’année dernière
			-- l’adresse courriel
			-- le téléphone
			-- Pays

			-- Votre code ici
			SELECT
				[Nom du client],
				[Poste occupé],
				[Adresse électronique],
				[Téléphone],
				[Pays],
				[Ventes de l'année dernière]
			FROM [dbo].[Clients]
			WHERE NOT (Pays LIKE '%am%rique' OR Pays LIKE 'canada') AND  [Poste occupé] LIKE 'propri%' AND [Ventes de l'année dernière] < 50000
			ORDER BY [Pays], [Ventes de l'année dernière] DESC;					
		
			-- ---------
			-- Requête 2
			-- Table : Commandes
			-- Écrire une requête qui affiche les commandes en retard.
			-- Une commande est considérée en retard lorsqu’elle a été expédiée après la date convenue (Date de besoin dans notre cas). Ce champ virtuel nous dit de combien de jours la commande est en retard.
			-- On affichera les colonnes suivantes
			-- * L'ID commande
			-- * La date d'expédition
			-- * La date de besoin
			-- * Le montant de la commande
			-- * Le numéro de commande
			-- * Le nombre de jours de retard

			-- Votre code ici
			SELECT 
				[ID commande],
				[Date d'expédition], 
				[Date de besoin], 
				[Montant commande], 
				[Numéro de commande],
				[Date d'expédition] - [Date de besoin] JoursRetard
			FROM [dbo].[Commandes]
			WHERE (((Commandes.[Date d'expédition]) > [Date de besoin]));

			-- Version 2
			--SELECT 
			--	Commandes.[ID commande], 
			--	Commandes.[Date d'expédition], 
			--	Commandes.[Date de besoin], 
			--	[Date d'expédition]-[Date de besoin] AS [En retard]
			--FROM Commandes
			--WHERE ((([Date d'expédition]-[Date de besoin])>0));
		
			-- ---------
			-- Requête 3
			-- Table : Commandes
			-- Écrire une requête qui affiche les commandes dont la date d’expédition est inférieure à la date de besoin mais qui n’ont pas encore été expédiée.
			-- On affichera les colonnes suivantes :
			-- •	L’ID Commande
			-- •	Montant de la commande
			-- •	Date de besoin
			-- •	Date d’expédition
			-- •	Commande expédiée

			-- Votre code ici
			SELECT 
				[ID commande], 
				[Montant commande], 
				[Date de commande], 
				[Date de besoin], 
				[Date d'expédition], 
				[Commande expédiée]
			FROM [dbo].[Commandes]
			WHERE ([Date d'expédition] < [Date de besoin] AND [Commande expédiée]= 0);
		
			-- ---------
			-- Requête 4
			-- Table : Commandes
			-- Écrire une requête qui affiche les commandes qui ne sont pas en retard et pour lesquelles aucun paiement n’a encore été reçu.
			-- On affichera les colonnes suivanates :
			-- •	L’ID Commande
			-- •	Montant de la commande
			-- •	Date de besoin
			-- •	Date d’expédition

			-- Votre code ici
			SELECT 
				[ID commande], 
				[Montant commande], 
				[Date de besoin], 
				[Date d'expédition], 
				[Paiement reçu]
			FROM [dbo].[Commandes]
			WHERE ((([Date d'expédition])<=[Date de besoin]) AND (([Paiement reçu]) = 0));
		
			-- ----------
			-- Requête 5
			-- Table : Achats
			-- Écrire une requête qui affiche les produits qui ne sont pas en commande.
			-- On affichera les colonnes suivantes :
			-- •	ID Produit
			-- •	Unités en commande
			-- •	Unités en stock
			-- •	Seuil de réapprovisonnement
			-- •	Numéro de commande

			-- Votre code ici
			SELECT 
				[ID produit], 
				[Unités en commande], 
				[Unités en stock],
				[Seuil de réapprovisionnement],
				[Numéro de commande]
			FROM [dbo].[Achats]
			WHERE [Unités en commande] = 0 AND [Numéro de commande] IS NULL;
		
			-- ----------
			-- Requête 6
			-- Table : Achats
			-- Écrire une requête qui affiche les produits qui doivent être réapprovisionnés et la nouvelle quantité en stock après le réapprovisionnement

			-- Précisions
			-- ==========
			-- Unités en commande : C’est la quantité du produit commandée auprès des fournisseurs par l'entreprise
			-- Unités en stock : C’est la quantité du produit restant en stock
			-- Seuil de réappro : C’est seuil à partir duquel on doit réapprovisionner le produit
			-- On affichera les colonnes suivantes :
			-- •	ID Produit
			-- •	Unités en stock
			-- •	Seuil de réapprovisionnement
			-- •	Unités en commande
			-- •	Nouveau stock

			-- Votre code ici
			SELECT 
				[ID produit],
				[Unités en stock],
				[Seuil de réapprovisionnement],
				[Unités en commande],
				[Unités en commande] + [Unités en stock] AS [Nouveau stock]
			FROM [dbo].[Achats]
			WHERE ([Unités en stock] <= [Seuil de réapprovisionnement]) AND [Numéro de commande] IS NOT NULL;
		
			-- ----------
			-- Requête 7
			-- Table  : ici vous devez déterminer la table qui contient les informations pour écrire la requête
			-- Écrire une requête qui affiche les commandes n’ayant pas de numéro de commande, (pas l’ID Commande) et qui doivent être réapprovisionnés.
			-- On affichera les colonnes suivantes :
			-- •	ID du Produit
			-- •	Unités en commande
			-- •	Unités en stock
			-- •	Numéro de commande
			-- •	Le seuil de réapprovisionnement
			-- •	

			-- Votre code ici
			SELECT 
				[ID produit], 
				[Unités en commande], 
				[Unités en stock],
				[Seuil de réapprovisionnement],
				[Numéro de commande]
			FROM [dbo].[Achats]
			WHERE ([Unités en commande] = 0) AND [Numéro de commande] IS NULL AND [Unités en stock] < [Seuil de réapprovisionnement];
		
			-- ----------
			-- Requête 8

		
			-- ----------
			-- Requête 9

		
			-- ----------
			-- Requête 10

		
			-- ----------
			-- Requête 11
		
		
			-- ----------
			-- Requête 12

		
			-- ----------
			-- Requête 13

		

		
		

W3schools

Python.org