begin process at 2010 09 03 10:03:37
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive ColdFusion

 > 

Archives

 > 

Base de données

 > 

choisir les uniques


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

choisir les uniques

lundi 29 décembre 2003 à 12:46:40 | choisir les uniques

Metrox

'lut all,

j'aimerais faire une requete sql, qui choisirait certains enregistrements, mais pas de doublon, genre si le premier est a, le deuxieme b, le troisieme c et le quatrieme a, la sortie sera:
a
b
c



comment faire?

merci!
M@x ---> Go on www.metrox.be
lundi 29 décembre 2003 à 20:42:06 | Re : choisir les uniques

Rastafa

<CFQUERY name="TrouverMembres" datasouce="MaDatasource">
SELECT DISTINCT nomMembre
FROM Membres;
</CFQUERY>

------------------
Rastafa
lundi 29 décembre 2003 à 21:28:29 | Re : choisir les uniques

Metrox

Merci! seul problème: il ne prend que le champ nomMembre...

Comment faire pr qu'il prene tous les champs, mais des lignes ou nomMembre est unique?

Merci!
M@x ---> Go on www.metrox.be
mardi 30 décembre 2003 à 13:45:53 | Re : choisir les uniques

bastoun

Précise un peu... cela dépend de ta requete elle même , de ce que tu as dans tes tables et de ce que tu veux obtenir...

ex : obtenir les enregistrements de membre différents enregistrés sur plusieurs sites

SELECT m.*
FROM membre m INNER JOIN MembreduSite ms ON m.membreID = ms.membreID

te ressort des membres en double (ou plus) si un même membreID est présent plusieurs fois dans la table MembreduSite.

En faisant
SELECT DISTINCT m.* .....
ta requete te resort tes membres de façon unique
mardi 30 décembre 2003 à 14:28:46 | Re : choisir les uniques

Metrox

Sa marche toujours pas =(


ce que j'ai:

plusieurs enregistrements...

J'aimerais pouvoir sélectionner tous les champs d'un enregistrement, mais sans doublon, ok???


M@x ---> Go on www.metrox.be
mardi 30 décembre 2003 à 15:01:47 | Re : choisir les uniques

bastoun

non, pas ok !!!

Si tes enregistrements sont REELLEMENT identiques (en ce qui concerne les champs définis dans le select), un select distinct suffit à faire l'affaire !!!
si tes enregistrements ne sont pas totalement identiques, il faut préciser sur quel critère tu veux les identifier de façon unique !!!

si tu as des enregistrements avec pour les champs nom, prénom et sexe, respectivement
'bon','jean','M' et
'bon','jean','F'
ce ne sont pas de vrai doublons, tu ne pourra pas les éliminer en faisant un SELECT DISTINCT nom, prénom, sexe
mais en faisant SELECT DISTINCT nom, prénom
ce qui te resortira juste un seul enregistrement : 'bon','jean'

Si tu n'es pas clair et précis dans ta demande, la réponse ne risque pas de te satisfaire... donc, donne un exemple de ta(tes ????) requete(s) que tu voudrais voir transformé(es)..
Le mieux est d'y ajouter un exemple de(s) table(s) concerné(es), avec au moins les enregistrements qui causent le doublonnage....
mardi 30 décembre 2003 à 21:38:25 | Re : choisir les uniques

Metrox

ok, mais, ce que je veux dire, je fais:

<cfquery name="maquery" datasource="madb">
select distinct from tables
</cfquery>



seulement, dans tables g un champ bonjour

donc, quand je fais #bonjour# sa marche pas!!!!


cmt faire?

merci en tt cas pr ttes tes réponses...

M@x ---> Go on www.metrox.be
mercredi 31 décembre 2003 à 08:45:40 | Re : choisir les uniques

bastoun

mouais.. toujours pas trés clair...et en plus ta requete risque de pas trop marcher..(distinct * from tables.. c mieux..)
qu'est-ce que tu as dans ta table ? (deux ligne d'exemple, même à 2 balles, ça peut suffir) et quel est ton code et le résultat obtenu ???

<cfquery name="maquery" datasource="madb">
select distinct * from tables
</cfquery>

Si par exemple (reprenons l'ex précédent, en sélectionnant les champs nom prenom et sexe), tu as
<cfoutput query="maquery">
#nom#
</cfoutput>
tu obtiendra evidemment 2 lignes, car ta requete t'en resort 2...

Tu dois connaitre, mais suivant ce que tu veux..
- soit tu fais ta requete en enlevent le champ qui cause le doublon (donc en sélectionnant uniquement nom, prenom) tu n'obtiendra qu'un seul enregistrement.
- soit, pour une raison quelconque, tu as besoin de garder ce champ là... ben.. il y a une solution.. tu rajoute un order sur les champs sur lesquels tu veux faire un regroupement, dans l'ordre du regroupement et sous regroupement.
ça te donne

<cfquery name="maquery" datasource="madb">
select distinct * from tables
Order by nom
</cfquery>

<table>
<cfoutput query="maquery" group="nom">
<tr><td bgcolor="red">#nom#</td></tr>
<cfoutput><tr><td>#prenom#-#sexe#</td></tr>
</cfoutput>
</cfoutput>
</table>

tu obtiendra
<table>
<tr><td bgcolor="red">bon</td></tr>
<tr><td>jean-M</td></tr>
<tr><td>jean-F</td></tr>
</table>

tu peux même faire
Order by nom, prenom, sexe

<table>
<cfoutput query="maquery" group="nom">
<tr><td bgcolor="red">#nom#</td></tr>
<cfoutput group="prenom">
<tr><td bgcolor="blue">#prenom#</td></tr>
<cfoutput>
<tr><td>#sexe#</td></tr>
</cfoutput>
</cfoutput>
</cfoutput>
</table>

tu obtiendras
<table>
<tr><td bgcolor="red">bon</td></tr>
<tr><td bgcolor="blue">jean</td></tr>
<tr><td>F</td></tr>
<tr><td>M</td></tr>
</table>

bon... j'espère que c'est ça... ou alors donne franchement un exemple viable de requete, de table et de code que tu as... ça me mettera peut-être un peu plus sur la piste de ce que tu veux faire


Cette discussion est classée dans : choisir, uniques


Répondre à ce message

Sujets en rapport avec ce message

choisir un champ dans cfcase [ par Metrox ] 'lut all,j'aimerais savoir comment on fait pour dire a cfm qu'il doit choisir un champ dans la varibale #tata# qui est un entier, et que si le chiffre choisir la premiere lettre d'une chaine [ par Metrox ] 'lut all, comment faire pour sélectionner la premiere lettre d'une chaine??ex: bonjour --> bMerci!M@x ---> Go on www.metrox.be choisir enregistrement [ par Metrox ] 'lut all,encore une bete question...je sors des résultats d'une db,et j'aimerais pouvoir lui dire qu'à tel place il sort l'enregistrement 6 de la colo


Nos sponsors


Sondage...

CalendriCode

Septembre 2010
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
27282930   

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,437 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales