Exercice Corrigé SQL

3
Exercice Corrigé SQL - Etude des Cas avec Corrigé SQL TP SQL avec solution SQL 1 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 logicielAMC 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; 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 ; j) Afficher le montant des contrats par client ;

Transcript of Exercice Corrigé SQL

Page 1: Exercice Corrigé SQL

Exercice Corrigé SQL - Etude des Cas avec Corrigé SQL TP

SQL avec solutionSQL 1

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 logicielAMC 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;

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 ;

j) Afficher le montant des contrats par client ;

k) Afficher le montant d’un contrat donné ;

Page 2: Exercice Corrigé SQL

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 tyLEFT JOIN voiture v ON ty.code_type=v.code_typeGROUP BY ty.code_type;

Question H

SELECT v.noimmatriculation,v.marque,COUNT(r.noimmatriculation) AS nombre_de_réparations FROM voiture vLEFT JOIN reparations r ON v.noimmatriculation=r.noimmatriculationGROUP BY v.noimmatriculation;

Question I

SELECT t.code_type,t.description_type, COUNT(r.noimmatriculation) AS nombre_de_réparations FROM type_voiture tLEFT JOIN voiture v ON t.code_type = v.code_type

Page 3: Exercice Corrigé SQL

LEFT JOIN reparations r ON v.noimmatriculation=r.noimmatriculationGROUP BY t.code_type,t.description_type;

Question J

SELECT cl.codeclt,cl.nomclt,SUM(Montant_Contrat) AS Somme_des_Montants FROM client clLEFT JOIN contrat c ON cl.codeclt=c.codecltGROUP 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 cJoin voiture v ON c.noimmatriculation=v.noimmatriculationWHERE c.date_contart IN(SELECT c.date_contart FROM contrat c where c.noimmatriculation='3567-ww') and c.noimmatriculation<>'3567-ww';