Probleme avec requete sql

majdoulin Messages postés 106 Statut Membre -  
majdoulin Messages postés 106 Statut Membre -
Bonjour,
Je voudrai faire une requete sql pour classer les equipes de tennis ,je dois utiliser group by et order by et ca me donne erreur :

select distinct(nom_equipe),sum(note),((sum(match_gagne))-(sum( match_perdu))) from classement where nom_equipe ='$nom' group by (nom_equipe) order by sum(note)
Quelqu'un connait la bonne utilisation de group by avec arder by ??
merci

15 réponses

rescue Messages postés 1047 Statut Contributeur 136
 
Bonjour,

Je n'ai pas testé ta requête mais je crois qu'il manque AND sauf erreur de ma part.

"and order by sum(note)"

@+
0
majdoulin Messages postés 106 Statut Membre
 
Bonjour ,merci bien mais ca ne marche pas non plus ,
quand je fais pas de order by la requete marche :

mysql_query("select distinct(nom_equipe),sum(note) from classement where nom_equipe ='$ligne[0]' group by (nom_equipe) "

Mais dés que j'ajoute order by ca donne erreur au niveau de group by :

mysql_query("select distinct(nom_equipe),sum(note) from classement where nom_equipe ='$ligne[0]' group by (nom_equipe) order by (note) "

merci
0
rescue Messages postés 1047 Statut Contributeur 136
 
Re,

Ta requete : est elle sur 1 table ou 2 tables ?

@+
0
majdoulin Messages postés 106 Statut Membre
 
salut la requete elle est sur une seule table .
0

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

Posez votre question
pitxu Messages postés 708 Statut Membre 95
 
Pour debugger correctement, fais ça :

$sql = "select distinct(nom_equipe),sum(note),((sum(match_gagne))-(sum( match_perdu))) from classement where nom_equipe ='$nom' group by (nom_equipe) order by sum(note)";
mysql_query($sql);
echo $sql;

Comme ça, tu affiches ta requête et tu peux vérifier quel paramètre pose problème.
0
rescue Messages postés 1047 Statut Contributeur 136
 
Re,

Alors donc moi je verrais plus si ta table s'appel classement :

$sql = "SELECT nom_equipe,
GROUP_CONCAT(DISTINCT nom_equipe,sum(note),((sum(match_gagne))-(sum( match_perdu))
ORDER BY sum (note))
FROM classement
GROUP BY nom_equipe";

Sauf erreur de ma part à vérifier.

@+
0
majdoulin Messages postés 106 Statut Membre
 
Bonjour tout le monde ,
merci pour vos réponses j'ai essayé la derniere resuete que tu m as ecrit rescue mais ca ne marche pas toujours erreur au niveau de group by et order by voici l'erreur :

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ORDER BY sum (note)) FROM classement GROUP BY nom_equipe' at line 3

Merci bien et a bientot.
0
rescue Messages postés 1047 Statut Contributeur 136
 
Bonjour,

Donne nous un export de ta table en question avec les champs et les données.
et post le tout ici dans le forum.

@+
0
majdoulin Messages postés 106 Statut Membre
 
Re
Bon voila c'est pour un site de gestion de rencontres de tennis, j'ai la table suivante :

CREATE TABLE `classement` (
`id_classement` int(10) NOT NULL auto_increment,
`nom_equipe` varchar(50) NOT NULL default '',
`note` int(4) NOT NULL default '0',
`match_gagne` int(4) NOT NULL default '0',
`match_perdu` int(4) NOT NULL default '0',
`diff` float NOT NULL,
`id_resultat` int(10) NOT NULL default '0',
PRIMARY KEY (`id_classement`),
KEY `id_resultat` (`id_resultat`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=8 ;

______________________

Dans cette table j'ai des enregistrements (le nom d'equipe peut se repeter c'est pourquoi je mets distinct) , je veux maintenant avoir le nom d'equipe,la somme des notes qu'il a eu ainsi que la difference entre la somme des matchs gagne et la somme des matchs perdu (sum(match_gagne)-sum(match_perdu)) ,tout cela doit etre classé par la somme des notes ,et au cas ou 2 equipes ont la meme somme de note il doivent etre classé par la difference entre match gagne et match perdu (sum(match_gagne)-sum(match_perdu))

au secouuuurs le site doit etre hebergé demain :)
0
rescue Messages postés 1047 Statut Contributeur 136
 
Re,

Bien reçu

Pourrait tu donner les données de la table STP Merci ?

C'est quoi le champ id_resultat a t'elle une relation avec une autre table ?


@+
0
majdoulin Messages postés 106 Statut Membre
 
Re ,
oui le champ id_resultat est une clé étrangère qui fait reference a une cle primaire dans la table résultat mais ca pose pas de probleme dans la requete . Quand aux données de la table classement les voici (ils s'ajoutent dés qu'un resultat est insere ) , c 'est juste pour tester :

INSERT INTO `classement` (`id_classement`, `nom_equipe`, `note`, `match_gagne`, `match_perdu`, `diff`, `id_resultat`) VALUES
(1, 'CSE', 4, 1, 6, 5, 11),
(2, 'OCPC', 5, 2, 5, -3, 12),
(3, 'ASLYDEC', 0, 5, 2, 3, 12),
(4, 'NAPHT', 4, 3, 4, -1, 13),
(5, 'CSE', 0, 4, 3, 1, 13),
(6, 'CSE', 4, 5, 2, 3, 14),
(7, 'ASLYDEC', 0, 2, 5, -3, 14);
0
rescue Messages postés 1047 Statut Contributeur 136
 
Bonsoir,

Désolé pour le retard mais j'ai profité un peu du soleil.
Voici donc ta requête qui fontionne chez moi, j'espère que c'est le resultat que tu attends.

requete sql :
SELECT DISTINCT nom_equipe, sum(note), (sum(match_gagne)-sum( match_perdu))
FROM classement
GROUP BY nom_equipe
ORDER BY sum(note);

Requete en php :
$sql = 'SELECT DISTINCT nom_equipe , sum( note ) , ( sum( match_gagne ) - sum( match_perdu ) ) '
. ' FROM classement '
. ' GROUP BY nom_equipe '
. ' ORDER BY sum( note )';

@+
0
majdoulin Messages postés 106 Statut Membre
 
Bonjour rescue ,et bien pas grave moi aussi aussi j'ai du quitter hier :)
Bon merci pour la requete mais chez moi ca ne marche toujours pas ,toujours la meme erreur :

Utilisation invalide de la clause GROUP

A+
0
rescue Messages postés 1047 Statut Contributeur 136
 
Bonsoir

Ecoute mon grand là je suis désolé mais je ne pourrai pas faire grand chose pour toi.
Vérifie ton script il doit y avoir un souci quelque part.

Voici ce que donne la requete chez moi :

nom_equipe sum( note ) ( sum( match_gagne ) - sum( match_perdu ) )
ASLYDEC ------------------0--------------------------------------------0
NAPHT----------------------4------------------------------------------(-1)
OCPC-----------------------5------------------------------------------(-3)
CSE-------------------------8------------------------------------------(-1)

@+
0
majdoulin Messages postés 106 Statut Membre
 
Bonjour ,
Mais la c'est une fille et pas mon grand :)

Merci beaucoup pour ton aide je vais esseyer de voir ce qui marche pas ,mais merci quand meme pour ton aide ,
a bientot
0