Voilà, j'ai une table avec les résultats des équipes, avec le n° de la journée, le score et les points par match (comme au foot):
EQUIPE | JOUR | PTS | GOAL
1__|__1__|__3__|__14
2__|__1__|__1__|__7
3__|__1__|__1__|__8
1__|__2__|__1__|__6
2__|__2__|__1__|__4
3__|__2__|__3__|__15
1__|__3__|__3__|__17
2__|__3__|__3__|__10
3__|__3__|__1__|__2
Moi, ce que je voudrais obtenir au final, c'est un classement de la meilleure équipe à la moins bonne dans un même et unique tableau, grâce uniquement à la table précédente (par les points et le goalaverage):
EQUIPE | J1 | J2 | J3 | J4 | ... | PTS | GOAL
1__|__14__|__6__|__17..........__|__7__|__37
3__|__8__|__15__|__2...........__|__5__|__25
2__|__7__|__4__|__10...........__|__5__|__21
QUI PEUT ME PROPOSER UNE REQUETE UNIQUE POUR OBTENIR CE RESULTAT ???
---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
nondidiou
Posté le 29-10-2003 à 21:58:14
NON ! c'est plus compliqué que cela, il y a des "group by", mais je pense qu'il faudra faire une boucle avec des left join...
Sinon c'est du MySQL, mais je ne pense pas que ce soit important, je veux une réponse en sql standard !
j'écrit le début, tu te démerde pour la finir, au cas où c'est un TP, que tu piges au moins comment ça marche...
select j1.equipe, j1.goal, j2.goal, sum(allj.pts)
from tab j1, tab j2, tab allj
where j1.jour = 1 and j2.equipe = j1.equipe and j2.jour = 2 and allj.equipe = j1.equipe
group by j1.equipe, j1.goal, j2.goal
order by j1.equipe
Normalement ça doit être bon (pas vérifigé, j'ai pas de SGBD sous la main)
bugsan
Posté le 30-10-2003 à 00:35:41
la requete est fausse, elle ne tient compte que des 2 premiers jours. Il faudrait mettre à jour la requete tous les jours ?
le nombre de colonnes est variable, à mon avis ca dépasse SQL et il faut du dynamique deriere pour générer la requete sql.
sinon sans l'affichage des jours ca donne ca
SELECT equipe, sum(pts) AS sum_pts, sum(goal) AS sum_goal
FROM Resultat
GROUP BY equipe
ORDER BY DESC sum_pts, sum_goal