- -
Liste des enregistrements de la table tblvilles par ordre alphabétique croissant des villes.
select * from tblvilles order by ville asc;
- 1.2 -
Liste des codes postaux et villes triée par code postal croissant.
select codpost, ville from tblvilles order by codpost asc;
- 1.3 -
Liste des clients (ex : M. Alain Delon) par ordre décroissant des noms.
select concat(civilité, ' ', prenom, ' ', nom) as client from tblClients
order by nom desc;
- 1.4 -
Liste des mécanos (Champ Nom : nom en majuscule, Champ Prénom : prenom) par ordre alphabétique des noms.
select upper(nom) Nom, prenom Prénom from tblEmployes
where categorie = 'Mécano' order by nom;
- 1.5 -
Liste, par age décroissant, des prénoms, noms et date de naissance des clients de plus de 40 ans.
select nom Nom, prenom Prenom,
date_format(dateNaissance, '%d %M %Y') 'Date de Naissance', year(curdate()) - year(dateNaissance) Age from tblCLients where dateNaissance is not null
and year(curdate()) - year(dateNaissance) > 40 order by age
- 1.6 -
Liste des interventions (NumIntervention) d'entretien-nettoyage (EN) et de réparation-nettoyage (RN) avec leur date de début, programmées du 1
eravril 1999 à aujourd'hui. Liste triée par date croissante.
select numintervention from tblinterventions
where (typeIntervention = 'EN' or typeIntervention = 'RN') and debinterv > '2006-04-01'
numintervention 3
4 7 8 14
- 1.7 -
Liste des numéros d'employés indisponibles totalement du 8 au 12 mars 2006.
Afficher avec les dates de début et de fin d'indisponibilité.
select numindispo, date_format(debIndispo, '%d/%m/%y') debut, date_format(finIndispo, '%d/%m/%y') fin
from tblIndisponibilites
where debindispo <= '2006-03-08' and finIndispo >= '2006-03-12'
numindispo debIndispo finIndispo
7 08/03/06 12/03/06
Faire la facturation de l'ensemble des interventions sachant que la prise en charge du véhicule vaut 1000$ et que chaque jour d'intervention vaut 1500$.
select concat(civ, ' ', nom, ' ', prenom) Client,
concat(marque, ' ',modele, ' ', numImmat) Véhicule, date_format(debInterv, '%d/%m/%y') Date,
dateDiff(finInterv, debInterv) Durée,
concat(dateDiff(finInterv, debInterv) * 1500 + 1000, ' $') Montant from tblClients c, tblMarques ma, tblModeles mo,
tblVehicules v, tblInterventions i where c.numClient = v.numClient and v.numVehicule = i.numVehicule and v.numModele = mo.numModele and mo.numMarque = ma.numMarque order by Date
- 2 .1 -
Liste des villes (ville) par ordre croissant pour lesquelles il n'y a aucun client.
select ville
from tblVilles v left join tblClients c on v.numVille = c.numVille
where nom is null order by ville ou
select ville
from tblClients c right join tblVilles v on v.numVille = c.numVille
where nom is null order by ville
- 2.2 -
La moyenne de kilométrage par type d'intervention (typeintervention, moyenne).
select typeIntervention, avg(kmvehicule) moyenne from tblinterventions
group by typeintervention order by typeintervention;
-2.3-
Le nombre de clients
select count(nom) 'Nombre clients' from tblClients
-
2.4
-Donner le nombre de clients qui possede un fax
select count(fax) from tblClients
-
2.5
-Donner le pourcentage de clients qui possede un fax
select count(fax)* 100 /count(nom) Pourcentage from tblClients
-
2.6
-Donner la date d'intervention la plus récente
select max(debInterv) from tblInterventions
-
2.7
-Donner l'année du véhicule le plus ancien
select min(annee) from tblVehicules
-
2.8
-Donner le propriétaire (prenom NOM), le véhicule (MARQUE modele) et l'année du véhicule ordonné par nom et véhicule
select concat(prenom, ' ', upper(nom)) Client, concat(upper(marque), ' ', modele) Vehicule, annee Annee
from tblVehicules v, tblClients c, tblModeles mo, tblMarques ma where v.numClient = c.numClient
and v.numModele = mo.numModele and mo.numMarque = ma.numMarque order by nom, Vehicule
Client Vehicule Annee
Isabelle ADJANI BMW M 3 1999
Jean-hugues ANGLADE JAGUAR XJ 8 1997
Josianne BALASKO RENAULT Safrane 1992
Kim BASSINGER BMW M 3 1998
Emmanuelle BÉART ROLLS-ROYCE Bentley-Continental 1998
-
2.9
-Le nombre de kilomètres de l'ensemble des véhicules.
select sum(kmVehicule) from tblInterventions
-
2.10
-Afficher le nombre de clients par numVille
select numVille, count(nom) 'Nombre de clients' from tblClients
group by numVille
-
2.11
-Le nombre d'interventions par employé (numEmploye).
select numEmploye, count(numIntervention) 'Nombre d''interventions' from tblIntervenants
group by numEmploye
-
2.12
-Le nombre d'interventions par employé (prenom NOM).
select concat(e.prenom, ' ' , upper(e.nom)) Employés, count(numIntervention) 'Nombre d''interventions'
from tblIntervenants i, tblEmployes e where i.numEmploye = e.numEmploye group by i.numEmploye
Employés Nombre d'interventions Clément LELAC 1
Hervé FAUST-PAZEN 2 Cloé SURPLACE 2
Zoé MATELOT 2
...
Pourquoi l'ordre n'est-il pas alphabétique ?
-
2.13
-Le nombre d'interventions par employé au mois de mars.
select e.nom, count(numIntervention) from tblIntervenants i, tblEmployes e where i.numEmploye = e.numEmploye
and (((debut between '2006-03-01' and '2006-03-31') or (fin between '2006-03-01' and '2006-03-31')) or ( debut < '2006-03-01' and fin > '2006-03-31')) group by e.nom
Il est possible d'utiliser la fonction MONTH(exp) nom count(numIntervention)
d'oleron 1
lelac 2
pechala 1
sonvieupor 1 voidedon 1
-
2.14
-Quels sont les employés (nom) dont le salaire est supérieur à l'empoyé 'Sonaylet'?
select nom
from tblEmployes where salaire > (
select salaire from tblEmployes
where nom like 'sonaylet')
Quels sont les clients (nom) qui ont le même modèle de voiture que Kim Bassinger?
select nom
from tblClients c, tblVehicules v, tblModeles mo where c.numClient=v.numClient
and v.numModele = mo.numModele and modele like(
select modele
from tblClients c, tblVehicules v, tblModeles mo where c.numClient=v.numClient
and v.numModele = mo.numModele and nom like 'Bassinger')
-
2.16
-Donnez le nombre de modèles par nationalité en ordre décroissant du nombre de modèles
select nationalite, count(modele) 'Nb modeles' from tblMarques, tblModeles
where tblMarques.numMarque=tblModeles.numMarque group by nationalite
order by 'Nb modeles' desc
-
2.17
-Donnez la moyenne des salaires par catégories d'employés.
select categorie Catégorie, avg(salaire) Moyenne from tblEmployes
group by categorie
-
2.18
-Donnez la liste (nom) des assistants dont le salaire est supérieur à la moyenne.
select nom
from tblEmployes where salaire > ( select avg(salaire)
from tblEmployes
where categorie like 'Assistant') and categorie like 'Assistant'