Exercice Corrigé SQL - SQL TP SQL avec solution
Gestion de location de voitures
Dans le cadre de son développement l'Agence TOP LOCATION décide d'informatiser son système d'information. Après analyse du système on vous a proposé le MLD suivant :
Travail à faire :
1. Créer la base de données "Location" avec les différentes tables et relations. (Utiliser le logiciel AMC Designor afin de générer le script de création de la base de données)
2. Réaliser les requêtes suivantes :
a) Afficher la liste des clients triée par Nom ;
b) Afficher la liste des contrats, triée par Date contrat ;
c) Afficher la liste des contrats d’un client donné ;
d) Afficher la liste des voitures disponibles ;
e) Afficher la liste des réparations pour une voiture donnée ;
f) Afficher la réparation la plus chère;
f) Afficher la réparation la plus chère;
g) Afficher le nombre de voiture par type ;
h) Afficher le nombre de réparations par voiture ;
i) Afficher le nombre de réparations par type_voiture ;
i) Afficher le nombre de réparations par type_voiture ;
j) Afficher le montant des contrats par client ;
k) Afficher le montant d’un contrat donné ;
l) Afficher les voitures ayant au moins une date de contrat identique à eux dela voiture immatriculée 3567-ww.
-------------------------------------------------------------------------------------------------------
Correction SQL
-------------------------------------------------------------------------------------------------------
Question A
SELECT * FROM client ORDER BY nomclt;
Question B
SELECT * FROM contrat ORDER BY date_contart DESC;
Question C
SELECT * FROM contrat WHERE codeclt='C4';
Question D
SELECT * FROM voiture WHERE disponible=1;
Question E
SELECT * FROM reparations WHERE noimmatriculation='52656-I-04';
Question F
SELECT * FROM reparations WHERE montant_rep=(SELECT MAX(montant_rep) from reparations);
Question G
SELECT ty.code_type,ty.description_type,COUNT(v.noimmatriculation) AS nombre_de_voiture FROM type_voiture ty
LEFT JOIN voiture v ON ty.code_type=v.code_type
GROUP BY ty.code_type;
Question H
SELECT v.noimmatriculation,v.marque,COUNT(r.noimmatriculation) AS nombre_de_réparations FROM voiture v
LEFT JOIN reparations r ON v.noimmatriculation=r.noimmatriculation
GROUP BY v.noimmatriculation;
Question I
SELECT t.code_type,t.description_type, COUNT(r.noimmatriculation) AS nombre_de_réparations FROM type_voiture t
LEFT JOIN voiture v ON t.code_type = v.code_type
LEFT JOIN reparations r ON v.noimmatriculation=r.noimmatriculation
GROUP BY t.code_type,t.description_type;
Question J
SELECT cl.codeclt,cl.nomclt,SUM(Montant_Contrat) AS Somme_des_Montants FROM client cl
LEFT JOIN contrat c ON cl.codeclt=c.codeclt
GROUP BY cl.codeclt;
Question K
SELECT nocontrat,Montant_Contrat FROM contrat WHERE nocontrat=6;
Question L
SELECT c.noimmatriculation,v.marque,c.date_contart FROM contrat c
Join voiture v ON c.noimmatriculation=v.noimmatriculation
WHERE c.date_contart IN(SELECT c.date_contart FROM contrat c where c.noimmatriculation='3567-ww') and c.noimmatriculation<>'3567-ww';
un site plein de publicité a la con
RépondreSupprimer