Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 07/04/2008, 13h07   #1
Futur Membre du Club
 
Avatar de rduvrac
 
Inscription : novembre 2004
Messages : 56
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 56
Points : 17
Points : 17
Par défaut [SQL] count & group avec order étrange ?

Bonjour,

J'ai le code en bas et qui me liste les parrains classées dans l'ordre en fonction de leur nombre de filleuls ayant au moins un enregistrement.

Avec cet exemple :
Enr. - FILLEUL - PARRAIN - PSEUDOduPARRAIN
8 - email3 - parrain3 - Bob
7 - email3 - parrain3 -
6 - email2 - parrain2 - CloseToMe
5 - email2 - parrain2 - Lovecats
4 - email2 - parrain2 - Lovecats
3 - email2 - parrain2 - Lullaby
2 - email2 - parrain2 - Marcel
1 - email1 - parrain2 -

Cela devrait me donner idéalement :
CloseToMe à 2 filleuls (pour un total de 5 enregistrements)
Bob à 1 filleul (pour un total de 2 enregistrement)

Bref il faudrait qu'il donne le PSEUDOduPARRAIN du dernier enregistrement idéalement.
Malheureusement actuellement il m'en donne 1 pris je sais pas sur quel critère !?
c'est pas le dernier, ni le premier, ni le plus présent... et me donne donc du genre :
Lullaby à 2 filleuls (pour un total de 5 enregistrements)
Bob à 1 filleul (pour un total de 2 enregistrement)

Donc, je sais pas si c'est possible... mais peut on demander qu'il donne le PSEUOduPARRAIN du dernier enregistrement quand on utilise un "count & group" ?

merci pour l'aide :-)

Code :
1
2
3
4
5
6
 
SELECT count(DISTINCT email) AS somme, parrain, pseudo
FROM matable
WHERE parrain <> ''
GROUP BY parrain
ORDER BY somme DESC
PS : les PARRAINs au départ n'ont pas forcement de Pseudo et peuvent le changer à volonté ensuite, voila pourquoi dans les enregistrement un même parrain à plusieurs pseudos.
rduvrac est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/04/2008, 16h11   #2
Membre expérimenté
 
Étudiant
Inscription : mars 2006
Messages : 396
Détails du profil
Informations personnelles :
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mars 2006
Messages : 396
Points : 500
Points : 500
Code :
1
2
3
SELECT parrain, MAX(Enr) as Enr
FROM matable
GROUP BY parrain
Cette requête sélectionne le dernier enregistrement de chaque parrain. Le pseudo de chaque parrain sera celui associé à cet enregistrement.

Code :
1
2
3
4
5
6
7
8
9
SELECT count(DISTINCT T1.email) AS somme, T1.parrain, T3.pseudo
FROM matable T1
  INNER JOIN ( SELECT parrain, MAX(Enr) as Enr
                    FROM matable
                    GROUP BY parrain) AS T2
           ON T1.parrain = T2.parrain
  INNER JOIN matable T3
           ON T3.Enr = T2.Enr
GROUP BY T1.parrain
jeremya est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/04/2008, 19h16   #3
Membre régulier
 
Inscription : avril 2007
Messages : 114
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 114
Points : 98
Points : 98
Envoyer un message via MSN à IGstaff
Pourquoi ne pas utiliser les id au lieu des pseudos?
Je comprendrais jamais cette manie...
IGstaff est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/04/2008, 02h30   #4
Futur Membre du Club
 
Avatar de rduvrac
 
Inscription : novembre 2004
Messages : 56
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 56
Points : 17
Points : 17
merci je connaissais pas encore la fonction MAX :-)
rduvrac est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h18.


 
 
 
 
Partenaires

Hébergement Web