PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 24-01-2010 01:41:26

Jiinn
Membre
Inscription : 06-01-2010
Messages : 22

Selection du plus grand resultat d'une addition de 3 colonne

hello !

je sèche un peu et j'ai besoin d'aide smile

j'ai trois colonne : homme femme autre

et je cherche a faire une sélection du plus grand résultat de leur total a chaque ligne.

exemple :

homme femme autre
20   32   5
15   23   6
58   2     15
18   45   4

le resultat sera : ligne 3 donc il me retourne cette ligne.

j'ai tenté :

SELECT DAY(date) AS jour, date as date , MAX(femme) as femme, MAX(homme) AS homme, MAX(autre) AS autre FROM stat_player WHERE YEAR(date) = $postYear and  MONTH(date) = $postMonth GROUP BY jour

mais forcément j'aurais comme résultat : femme ligne 4 , homme ligne 3 , autre ligne 3

et autre tentative non concluante :

SELECT DAY(date) AS jour, date as date , MAX((femme as femme + homme AS homme + autre AS autre)) FROM stat_player WHERE YEAR(date) = $postYear and  MONTH(date) = $postMonth GROUP BY jour

merci de votre aide !

Jiinn

Dernière modification par Jiinn (24-01-2010 01:42:34)

Hors ligne

#2 24-01-2010 08:21:28

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : Selection du plus grand resultat d'une addition de 3 colonne

Je ne vois pas comment faire cela en SQL.
Personnellement j'aurais récupéré les trois colonnes et ensuite en PHP pour chaque enregistrement retourné j'aurais pris le max.

Après peut être que quelqu'un te donnera une solution SQL. ^^

Hors ligne

#3 24-01-2010 09:12:23

Alnoss
Modérateur absent
Lieu : 06 - PACA
Inscription : 11-05-2009
Messages : 541
Site Web

Re : Selection du plus grand resultat d'une addition de 3 colonne

coucou,
effectivement, je serais moi aussi passé par une solution de sélection par du php...ce qui a aussi l'avantage de rendre moins lourde ta requête wink


MERCI de lire le mode d'emploi avant de poster !!

Hors ligne

#4 24-01-2010 12:13:52

Pierrot
Ancien nouveau
Inscription : 08-05-2009
Messages : 1 195

Re : Selection du plus grand resultat d'une addition de 3 colonne

SELECT @max_homme:=max(homme),@max_femme:=MAX(femme),@max_autre:=MAX(autre) FROM stat_player;
voilou,, comme ca, y a plus que 3 valeur à comparé wink

j'vous laisse faire pour le reste wink

a++

Hors ligne

#5 24-01-2010 12:39:50

Pierrot
Ancien nouveau
Inscription : 08-05-2009
Messages : 1 195

Re : Selection du plus grand resultat d'une addition de 3 colonne

j'avais mal compris la question big_smile
je rectifie wink

select (homme)+(femme)+(autre)) as maxxx from stat_player  order by maxxx desc limit 1

a++

Hors ligne

#6 24-01-2010 12:47:58

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : Selection du plus grand resultat d'une addition de 3 colonne

Saluton,
Plusieurs choses :
Comme souvent déjà dit donner un mot réservé SQL (date) comme nom de colonne d'une table n'est pas très avisé.
GROUP BY doit être utilisé avec prudence, la corrélation entre les colonnes soumises à une fonction et les autres colonnes, surtout si elles ne font pas partie de la clause GROUP BY, n'a généralement pas de sens.
Ici, il faut passer par une sous-requête

SELECT DAY(s.quand) AS jour, s.quand , s.femme, s.homme, s.autre
FROM stat_player s
WHERE YEAR(s.quand) = $postYear
AND  MONTH(s.quand) = $postMonth
AND femme+ homme+ autre= (SELECT MAX(s2.homme)+MAX(s2.femme)+MAX(s2.autre)
WHERE YEAR(s2.quand) = $postYear
AND  MONTH(s2.quand) = $postMonth FROM stat_player s2)

Il doit y avoir une solution en autojointure....mais c'est dimanche
[edit]un copier-coller un peu rapide dans la dernière condition du WHERE de la requête principale[/deit]


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#7 24-01-2010 15:38:48

Jiinn
Membre
Inscription : 06-01-2010
Messages : 22

Re : Selection du plus grand resultat d'une addition de 3 colonne

hello merci pour ces reponse,

Maljuna je n'arrive pas a appliquer cette requete, pierrot je cherche dans ton sens.

Hors ligne

Pied de page des forums