Exercice Corrigé SQL - Etude des Cas avec Corrigé 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