par
Isuka » 03 mai 2006, 17:13
Bonjour à tous,
Je bloque sur la conception d'une requete.
J'ai 3 tables :
la 1ère, artistes, avec comme champs : id, nom, prenom
la 2ème, oeuvres, avec comme champs : id, artiste_id, titre
la 3ème, notes, avec comme champs : id, oeuvre_id, note
Je souhaiterais récuperer la somme des moyennes des notes des oeuvres de chaque artiste, par exemple :
L'artiste Toto à 2 oeuvres, pour son oeuvre 1 il y a 4 notes et pour son oeuvre 2 il y a 3 notes. Je voudrais donc :
1/ faire la moyenne des notes de chaque oeuvre
2/ additionner la moyenne des 2 oeuvres
3/ trier les résultats en fonction du total des moyennes.
J'ai bidouiller des trucs genre
Code : Tout sélectionner
SELECT artistes.id, artistes.nom, oeuvres.titre, AVG(notes.note)
FROM artistes, oeuvres, notes
WHERE oeuvres.artiste_id = artistes.id
AND notes.oeuvre_id = oeuvres.artiste_id
GROUP BY artistes.id
mais ça ne donne pas vraiment le résultat attendu, vu que j'ai un tri en fonction des moyennes j'ai l'impression...
J'ai également essayé de calculer une somme de moyenne
mais j'ai une erreur de syntaxe
Any idea ?
Bonjour à tous,
Je bloque sur la conception d'une requete.
J'ai 3 tables :
la 1ère, artistes, avec comme champs : id, nom, prenom
la 2ème, oeuvres, avec comme champs : id, artiste_id, titre
la 3ème, notes, avec comme champs : id, oeuvre_id, note
Je souhaiterais récuperer la somme des moyennes des notes des oeuvres de chaque artiste, par exemple :
L'artiste Toto à 2 oeuvres, pour son oeuvre 1 il y a 4 notes et pour son oeuvre 2 il y a 3 notes. Je voudrais donc :
1/ faire la moyenne des notes de chaque oeuvre
2/ additionner la moyenne des 2 oeuvres
3/ trier les résultats en fonction du total des moyennes.
J'ai bidouiller des trucs genre
[code]
SELECT artistes.id, artistes.nom, oeuvres.titre, AVG(notes.note)
FROM artistes, oeuvres, notes
WHERE oeuvres.artiste_id = artistes.id
AND notes.oeuvre_id = oeuvres.artiste_id
GROUP BY artistes.id
[/code]
mais ça ne donne pas vraiment le résultat attendu, vu que j'ai un tri en fonction des moyennes j'ai l'impression...
J'ai également essayé de calculer une somme de moyenne
[code]
SELECT SUM(AVG(notes.note))
[/code]
mais j'ai une erreur de syntaxe :(
Any idea ?