Requete SQL

alf666666 Messages postés 46 Date d'inscription samedi 1 novembre 2003 Statut Membre Dernière intervention 16 avril 2008 - 28 août 2005 à 19:09
alf666666 Messages postés 46 Date d'inscription samedi 1 novembre 2003 Statut Membre Dernière intervention 16 avril 2008 - 4 sept. 2005 à 11:41
Je désire afficher sur mon site un classement. J'ai deux tables, une table hotel et une table note. Une personne met une note sur un hotel.
Donc je désirerais faire un moyenne de toutes les notes qui correspond à un hotel et faire ensuite afficher en 1er l'hotel avec la meilleur moyenne, ensuite le 2ème hotel avec la 2ème meilleur moyenne etc....J'immagine qu'il faille faire une sous requete ?

<cfquery name="MoyNote" datasource="bdcold">
SELECT AVG(note)
FROM tableNote
WHERE ?????
</cfquery>

Merci
Salutations
Alf

6 réponses

cs_bastoun Messages postés 164 Date d'inscription dimanche 1 octobre 2000 Statut Membre Dernière intervention 23 mars 2007 1
29 août 2005 à 18:24
Peux-tu indiquer en gros la structure des tables (histoire de pas balancer une requete qui ne corresponde pas) ? (je pense que tu as une table établissement et une table note avec une clef etrangère pointant vers la table etablissement, mais bon... on sait jamais...)
0
alf666666 Messages postés 46 Date d'inscription samedi 1 novembre 2003 Statut Membre Dernière intervention 16 avril 2008
29 août 2005 à 18:33
alors j'ai une stucture comme tel :

table hotel :
idHotel (primary key)
nomHotel
adresseHotel
etc...

table commentaire :
idCommentaire(primary key)
idHotel (Foreign Key)
note
commentaire

et un hotel peut avoir de 0 à n commentaires
et un commentaire peut appartenir à 1 et 1 seul hotel

Voila
Merci
0
cs_bastoun Messages postés 164 Date d'inscription dimanche 1 octobre 2000 Statut Membre Dernière intervention 23 mars 2007 1
30 août 2005 à 08:18
bah... ça va.. j'espérais que tu aurais structuré cela comme ça, mais bon on sait jamais....



Pas besoin de sous requete ici :



SELECT AVG(note) as moy, nomHotel

FROM Hotel H INNER JOIN Commentaire C ON c.idhotel=h.idhotel

GROUP BY nomHotel

ORDER BY moy DESC
0
alf666666 Messages postés 46 Date d'inscription samedi 1 novembre 2003 Statut Membre Dernière intervention 16 avril 2008
1 sept. 2005 à 06:50
Parfait, ca fonctionne très bien, now.. ca me donne une moyenne avec "mille" décimal style 5.405053030, comment faire pour laisser une seule décimale ?
Merci



<cfquery name="TEST" datasource="bdcold">
SELECT AVG(note) as moy, nomHotel
FROM Hotel H INNER JOIN Commentaire C ON c.idhotel=h.idhotel
GROUP BY nomHotel
ORDER BY moy DESC
</cfquery>
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
syndrael Messages postés 2378 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 29 décembre 2012 20
3 sept. 2005 à 21:41
tout dépend si tu veux utiliser SQL ou Cold Fusion pour réaliser cette troncature..

Si tu veux par SQL, donne nous ton SGBD, y'a des différences entre logiciels..

S.
0
alf666666 Messages postés 46 Date d'inscription samedi 1 novembre 2003 Statut Membre Dernière intervention 16 avril 2008
4 sept. 2005 à 11:41
Hello,
Merci pour ton aide..
ben si c'est sur SQL.. j'emploie MySql..sinon je suis aussi ouvert pour Coldfusion
Merci..
Alf
0
Rejoignez-nous