|
Page Précédente | |
Auteur | Sujet : [ASP][SQL] comment faire un SELECT DISTINCT en ayant plusieurs champs? |
Publicité | Posté le 06-09-2001 à 14:49:04 |
duch | si je fais :
[edtdd]--Message édité par duch--[/edtdd] |
jenner | select distinct XXX, AAA, ZZZ from table; |
duch | bah je veux une liste tous les gens dont les mails sont uniques, mais je peux qd même pouvoir récupérer leur nom et leur prénom, c'est tout. |
duch | jenner > ça ça marche pô |
_epegasus_ | Bah ca doit marcher normallement : "SELECT DISTINCT mail,prenom,nom FROM liste" |
duch | pû personne? |
Publicité | Posté le 06-09-2001 à 15:39:33 |
FLY LM | Tu peux toujours faire ta requête selectionnant le mail, le nom et le prenom et trier en ASP à défaut de pouvoir utiliser DISTINCT... NON ??? [edtdd]--Message édité par fly lm--[/edtdd] |
duch | merci de me répeter 20 fois la même chose mais j'avais compris
|
duch | bon ben si y'a pas d'autre moyen, je prendrais la méthode bourrin |
Fred999 Rabat-joie | Je comprends pas ton problème. Je comprends les solutions proposées, mais vu la question que tu poses enfin bref TU POURRAIS PAS DONNER UN EXEMPLE??? |
FLY LM | C'est pas si bourrin que ça, je sais ce serait mieux d'avoir directement le résultat en SQL... J'ai essayer de jouer avec DISTINCT mais comme toi ca fait pas ce qu'on attends et c'est normal, je trouve pas...Mais si tu fais une première requête en triant par mail, c'est d'autant plus simple pour ensuite refaire un trie en ASP (quoique l'ASP, connait pas bien...)...
|
alknon | SELECT mail,prenom,nom FROM liste WHERE mail LIKE '%@%'" GROUP BY mail,prenom,nom |
FLY LM | Pour Infos, le DISTINCT est extrêment gourmand en ressource !! |
Sarah Bloodthicket | Il est pourtant clair son problème.
|
tet2neu emmerdeur | heureusement que tu es là, il aura quand même attendu 7 ans avant d'avoir la réponse edit : et sinon, ta requête elle fonctionne pas Message édité par tet2neu le 20-10-2008 à 17:02:51 |
Sarah Bloodthicket | Ca servira au prochain qui se posait la question ^^ |
tet2neu emmerdeur | ta requête ne fonctionne pas car elle renvoie tout le contenu de la table : pour chaque code tu auras tous les ID et tous les libellés, donc tout. Et enrichir la clause where n'y changera rien, à moins de filtrer avec une liste explicite de libellés ou d'ID, ce qui n'a plus aucun intérêt. De plus, la question posée par l'auteur du topic n'est vraiment pas claire.
je veux une liste tous les gens dont les mails sont uniques, mais je peux qd même pouvoir récupérer leur nom et leur prénom
Bref, si personne n'a proposé de solution correcte ici, c'est que le problème n'a jamais été exposé clairement Message cité 1 fois Message édité par tet2neu le 21-10-2008 à 18:20:37 |
ionik |
tet2neu emmerdeur | non
|
Sarah Bloodthicket | tet2neu : "ta requête ne fonctionne pas car elle renvoie tout le contenu de la table : pour chaque code tu auras tous les ID et tous les libellés, donc tout."
|
Sarah Bloodthicket | "non et STOP !"
|
Harkonnen ModérateurUn modo pour les bannir tous | pour info :
--------------- J'ai un string dans l'array (Paris Hilton) |
tet2neu emmerdeur |
quand je dis que la requête ramène toute la table je ne parle pas du nombre de colonnes mais du nombre de ligne. Bref, la requête ne fait aucun distinct. Dans ton exemple, soit le SGBD ramène tout le contenu de la table (donc aucun DISTINCT), soit la requête plante lamentablement (ce dont parle Harko). En aucun cas le résultat ne sera celui que tu donnes. Message édité par tet2neu le 21-11-2008 à 18:28:27 |
Sarah Bloodthicket |
|
Sarah Bloodthicket | Exact copier coller du code :
|
tet2neu emmerdeur | J'ai bien compris que ton intention en postant ici était d'aider en partageant ton expérience. Rien de mal à cela, mais je ne peux pas te laisser dire que ta solution est bonne. Encore une fois, la requête que tu proposes n'est pas correcte. Regardons, afin d'être plus clair, le problème initialement posé sur ce topic. Nous avons une table qui contient des ensembles NOM / PRENOM / E-MAIL On peut retrouver dans cette table le même e-mail avec des couples nom/prenom différents. NOM / PRENOM / MAIL Dupond / Jacques / jacquesd@hfr.fr La question posée est "comment récupérer les e-mail distinct, mais aussi les noms et prénoms" je veux donc récupérer une seule fois "jacquesd@hfr.fr" mais je voudrais aussi le nom et le prénoms qui correspondent.
Si je teste cette requête sous sysbase, elle semble fonctionner. Mais le résultat est le suivant : Donc en gros, le group by n'a servi à rien du tout. Pourquoi ? Parce que pour l'e-mail jacquesd@hfr.fr je dispose de 2 couples nom/prénom et que je ne dis pas à ma requête lequel choisir. Donc il sort les 2. Si je teste cette requête sous Oracle, elle plante !
Passons outre le fait que, syntaxiquement, ta requête pourra être rejetée par certains SGBD. Visiblement, pour le tiens, ça passe. Tu sélectionnes le code et le libellé, tu regroupes sur le codes, et tu obtiens bien la liste distincte des couples CODE/LIB. Et bien vois-tu, rien d'anormal dans la mesure où dans ta tables, tu ne retrouves jamais 2 fois le même code avec 2 libellés différents. Dans ton cas, tu aurais dû faire la requête suivante select distinct CODE, LIB from FICHIER where ... En conclusion, il ne s'agit pas de s'acharner sur toi par pure méchanceté. J'insiste sur le fait que ta requête est incorrecte. Elle ne respecte pas l'utilisation normale du group by. Message édité par tet2neu le 25-11-2008 à 19:44:12 |
Harkonnen ModérateurUn modo pour les bannir tous |
--------------- J'ai un string dans l'array (Paris Hilton) |
tet2neu emmerdeur | il me semble que sous sybase ASE ça plantait pas. Mais ça remonte un peu |
Sarah Bloodthicket | Bon, he bien déjà merci pour cette réponse plus détaillée que les précédentes.
Message édité par Sarah Bloodthicket le 26-11-2008 à 13:53:09 |
Sarah Bloodthicket |
Message édité par Sarah Bloodthicket le 26-11-2008 à 14:12:02 |
tet2neu emmerdeur | Ah oui
|
hisoka77 | Bon pour rencontrer le même problème que le membre qui à posté la question initialement je comprend tout à fait sa question. Je vais essayer de la reformuler : Mais pour compliquer un peu les entrés dont le champ A est identique peuvent avoir trois autres champs de différent entre eux. (comme dans l'exemple ou plusieurs noms sont associés à seule une adresse email) Peu m'importe comment ils sont choisis (aléatoirement par exemple) mais je préférais que l'entrée qui sera affiché parmi celle qui ont le même champ A soir celle pour qui la valeur du champ B serait la plus petite. Donc comment dois-je faire? Merci ! Message édité par hisoka77 le 03-12-2008 à 19:15:29 |
patrick72 | Exemple:
Message édité par patrick72 le 08-01-2009 à 10:57:59 |
claudelana | J'ai un problème de selection avec un distinct qui ne veut pas faire ce que je voudrais.
|
Publicité | Posté le |
Page Précédente |
Sujets relatifs | |
---|---|
Asp detection de champ vide dans un recordset | [ASP]Date |
[Asp / VB ] Connexion distante a une base de donnée | [ASP] Pilote ODBC Microsoft Access erreur ... |
[ASP]Fonction replace | qcm, à plusieurs réponses !? |
ASP - Arrondir.. ou tronquage partie entière... | [MYSQL] Comment faire si deux champs portent le même nom? |
[ASP][SQL] une requête pour connaitre la structure d'une table ??? | |
Plus de sujets relatifs à : [ASP][SQL] comment faire un SELECT DISTINCT en ayant plusieurs champs? |