Bonjour,
Effectivement, c'est curieux de vous demander des compétences SQL pour ce poste, mais bon.
Pour commencer, félicitations, non seulement vous avez fait l'effort d'essayer, mais en plus le résultat est tout à fait honorable
Quelques remarques d'ordre général
Les littéraux doivent être encadrés de quotes simples et non pas doubles
Les dates s'expriment sous la forme 'AAAA-MM-JJ'
Enfin, dans les requête, il ne faut pas utiliser "table" devant les noms des tables
Pour mettre en évidence vos requêtes, utilisez la balise QUOTE (symbole dièse # de la barre d'icones)
ET quelques commentaires concernant vos réponses
-1- n° de chambre et capacité :
votre solution est peut-être la bonne, mais il me semble que la capacité c'est plus probablement le nombre de personne que le nombre de lits. Le principe de la requête reste le même. Pensez à supprimer le mot "table" devant le nom de la table
-2- ok (même remarque concernant le mot "table")
-3- prix par personne des chambres avec TV :
votre solution est la bonne si on veut le prix par chambre, mais en ce cas, il serait utile d'ajouter le n° de chambre.
si on veut le prix moyen, alors il faut faire la somme des prix divisée par la somme du nombre de personnes des chambres équipées
1 2 3
| select sum(prix)/sum(Nbr-Pers)
from chambre
where Equ = 'TV' |
-4- ok au format de la date près (à remplacer par 'AAAA-MM-JJ'
-5- ok aussi, (vous ne vous êtes pas fait piéger par la combinaisons d'opérateur and/or et avez bien placé les parenthèses) mais attention il faut encadrer la constante 'bain' de simple quotes et comme on dit maximum 80€ ou 120€, il faut comprendre bornes incluses
-6- ici il faut faire une jointure.
Vous avez utilisé une jointure
LEFT (OUTER) JOIN, pourquoi pas, mais ce n'était pas nécessaire car on ne demande de résultat que pour les chambres ayant fait l'objet d'une réservation.
une jointure
LEFT ou RIGHT OUTERn'est nécessaire que si on demande le confort de toutes les chambres, et, pour celles qui ont fait l'objet de réservation, d'ajouter les infos de ces réservations
Mais encore une fois, ça n'est pas gênant.
Par contre, vous n'avez pas codé le critère de jointure opérateur
ONVoici la syntaxe :
1 2 3 4 5 6 7 8 9
|
Select RS.Num_Client
, RS.Num_chambre
, CH.Confort
From réservation as RS
inner JOIN chambre as CH
on CH.Num_Chambre=RS.num_chambre
Where RS.Date_Arr = '2014-09-02'
; |
Notez :
- l'utilisation
d'alias (AS RS et AS CH) qui permettent de manipuler des noms courts pour les tables. Ca facilite la vie et c'est nécessaire quand une même colonne est présente dans plusieurs tables d'une même requête.
- la mise en forme de la requête avec des retours à la ligne, ça facilite la lecture et donc la maintenance
- l'ajout de l'opérateur ON pour préciser les critères de jointure
- la suppression du mot "table"
- le format de la date entre simple quotes : 'AAAA-MM-JJ'
Bonne chance pour vos examens
Partager