Bonjour,
j'ai un problème avec un group by dans une sous requête.
En fait j'ai une table Enregistrements et une table Avis.
Un avis correspond à un seul enregistrements et cet avis donne une note à l'enregistrement.
Ce que je veux faire c'est sélectionner les titres des enregistrements par ordre croissant des moyenne de notes.
Voici ma requête:
1 2 3
| select Enregistrements.Titre_Enregistrement from Enregistrements inner join
(select Avis.Code_Enregistrement from Avis group by Avis.Code_Enregistrement order by AVG(Avis.Notes) DESC) as A
ON Enregistrements.Code_Enregistrement = A.Code_Enregistrement |
L'erreur:
Warning: odbc_exec() [function.odbc-exec]: SQL error: [Microsoft][ODBC SQL Server Driver][SQL Server]La clause ORDER BY n'est pas valide dans les vues, les fonctions inline, les tables dérivées, les sous-requêtes et les expressions de table communes, sauf si TOP ou FOR XML est également spécifié., SQL state 37000 in SQLExecDirect in D:\Inetpub\wwwroot\etd\jboe\TP_MUSIQUE\odbc.class.php on line 34
Le principe est d'abord de grouper les avis par les Codes_Enregistrements, ensuite pour chaque groupe (donc chaque enregistrement) faire la moyenne des notes en les classant, et sélectionner les titres des enregistrements correspondant aux code renvoyé par la sous requete.
Le problème c'est que la sous requete renvoi des "group".
Donc si vous avez des solutions, merci
Partager