A L'AIDE: requête sql trop compliquée pour moi !

A L'AIDE: requête sql trop compliquée pour moi ! - SQL/NoSQL - Programmation

Marsh Posté le 29-10-2003 à 20:31:21    

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 ???


---------------
Mon site perso de fléchettes : http://www.darts-fr.com
Reply

Marsh Posté le 29-10-2003 à 20:31:21   

Reply

Marsh Posté le 29-10-2003 à 21:35:48    

ORDER BY
complement d'info et optimisation ici (!!! mysql only !!! ):
http://www.mysql.com/doc/en/ORDER_BY_optimisation.html
 
quel sgbd ?
 


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Marsh 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 !


---------------
Mon site perso de fléchettes : http://www.darts-fr.com
Reply

Marsh Posté le 29-10-2003 à 22:04:57    

en fait tu veux les jouers avec, c ca ?


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Marsh Posté le 29-10-2003 à 22:12:04    

? comprends pas là !?


---------------
Mon site perso de fléchettes : http://www.darts-fr.com
Reply

Marsh Posté le 29-10-2003 à 22:32:16    

tu veux que la requete te retourn aussi les joueurs, c'est ca ?


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Marsh Posté le 29-10-2003 à 22:33:56    

non pourquoi? tout ce que je veux est expliqué dans mon premier post !


---------------
Mon site perso de fléchettes : http://www.darts-fr.com
Reply

Marsh Posté le 29-10-2003 à 22:39:18    

ouais c'est rigolo à faire ça comme requête.
 
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)

Reply

Marsh 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

Reply

Marsh Posté le 30-10-2003 à 10:06:06    

bugsan a écrit :

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


t'as lu la 2° ligne de mon post ?

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed