les cuisinies du perches
D’après sujet de BTS 1994
Cas« LES CUISINIES DU PERCHE » - Requêtes corrigées
Partie A – Révisions des requêtes
1. Combien de plats existent par numéro de catégorie ?
SELECT numcat, count(numplat) AS nombre_de_plats
FROM PLAT
GROUP BY numcat;
2. Combien de plats existent par nom de catégorie ?
SELECT CATEGORIE.libcat, COUNT(numplat) as nombre_de_plats
FROM PLAT, CATEGORIE
WHERE PLAT.numcat=CATEGORIE.numcat
GROUP BY libcat;
3. Quel est le menu le plus cher, le menu le moins cher et l’écart de prix entre les deux ?
SELECT MAX(prixmenu) as menu_le_plus_cher,MIN(prixmenu) as menu_le_moins_cher, MAX(prixmenu)MIN(prixmenu) as écart_de_prix
FROM MENU;
4. Quel est le chiffre d’affaires par nom de client ?
SELECT CL.NomCli, Sum([qtécom]*[prixmenu]) AS ca_par_client
FROM CLIENT AS CL, COMMANDE AS CO, LIGNECOMMANDE AS LC, MENU AS M
WHERE (((CL.CodeCli)=[CO].[codecli]) AND ((CO.NumCom)=[LC].[numcom]) AND
((LC.NumMenu)=[M].[nummenu]))
GROUP BY CL.NomCli;
5. Même question, mais en ne retenant que les clients qui ont un CA supérieur à 200 €
SELECT CL.NomCli, Sum([qtécom]*[prixmenu]) AS ca_par_client
FROM CLIENT AS CL, COMMANDE AS CO, LIGNECOMMANDE AS LC, MENU AS M
WHERE (((CL.CodeCli)=[CO].[codecli]) AND ((CO.NumCom)=[LC].[numcom]) AND
((LC.NumMenu)=[M].[nummenu]))
GROUP BY CL.NomCli
HAVING Sum([qtécom]*[prixmenu])>200;
6. Combien de salariés ont été embauchés par année ?
SELECT Year(DateEmb) AS AnnéeEmbauche, Count(*) AS NbSalariés
FROM CUISINIER
GROUP BY Year(Dateemb);
7. Combien de menus comportent plus de 4 plats ?
Select NumMenu
From COMPOSE
Group by NumMenu
Having Count(numplat) > 4;
8. On désire connaître le nombre d’années d’ancienneté par cuisinier.
SELECT CUISINIER.NomCuis, Int((Now()-DateEmb)/365) AS nb_années_ancienneté
FROM CUISINIER;
9. Combien y a t-il de cuisiniers par cuisine et par année d’ancienneté ?
Select numcuisine, int((Now()-DateEmb)/365) As Ancienneté, Count(*) As NbSalariés