cs_taikibaybay
Messages postés46Date d'inscriptionmercredi 1 mars 2006StatutMembreDernière intervention25 décembre 2007 13 déc. 2006 à 15:42
j ai une table dans la quelle j ai des doublon, mais ne constate les douclon selement sur ch1 et ch2, et je veux toute la table sans les doublon.
Exp : 1enregistrement ; ch1=12,ch2=ppp1, ch3= okko...
2enregistrement ; ch1=12,ch2=ppp1,ch3=lkpkpk...
1 et 2 sont des doublon en faite, comment extraire seulement un des deux en sql
merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
tof008
Messages postés695Date d'inscriptionjeudi 5 mai 2005StatutMembreDernière intervention 5 janvier 201033 13 déc. 2006 à 15:51
Et si ce que tu veux c'est lister les deux tables sans doublons, quand tu liste ta 2eme table, tu verifie que le champ n'est egal a aucun champ de la premiere. C'est long , mais on a rien sans rien
(Si la réponse vous convient, appuyez sur réponse acceptée...).
cs_taikibaybay
Messages postés46Date d'inscriptionmercredi 1 mars 2006StatutMembreDernière intervention25 décembre 2007 13 déc. 2006 à 16:57
ma requette
SELECT DISTINCT [TABDLE GENERAL WEB ET CEGID].CODEPROEXTERNE, [TABDLE GENERAL WEB ET CEGID].IDFLUXIMPORT, [TABDLE GENERAL WEB ET CEGID].*
FROM [TABDLE GENERAL WEB ET CEGID]
il faut que le distinct n affect que [TABDLE GENERAL WEB ET CEGID].CODEPROEXTERNE et [TABDLE GENERAL WEB ET CEGID].IDFLUXIMPORT seulement
le distinct de ma requette affect tous les champs, et ce n est pas ce que je veux
merci
Liberty68
Messages postés7Date d'inscriptionvendredi 27 janvier 2006StatutMembreDernière intervention16 décembre 2006 14 déc. 2006 à 20:09
Bonjour à tous,
J'ai pas tout compris mais pour éviter les doublons moi j'utilise Group By, peut être ceci fonctionne pour ton cas :
SELECT TABDLE GENERAL WEB ET CEGID.[CODEPROEXTERNE], TABDLE GENERAL WEB ET CEGID.[IDFLUXIMPORT], TABDLE GENERAL WEB ET CEGID.*
FROM TABDLE GENERAL WEB ET CEGID
GROUP BY TABDLE GENERAL WEB ET CEGID.[CODEPROEXTERNE]
GROUP BY TABDLE GENERAL WEB ET CEGID.[IDFLUXIMPORT];
cs_taikibaybay
Messages postés46Date d'inscriptionmercredi 1 mars 2006StatutMembreDernière intervention25 décembre 2007 15 déc. 2006 à 00:02
si je fais un regroupement sur tout les champs, je vais avoir aussi les doublon.
en faites c la combinaison ch1 et ch2 qui me determine mes doublons:
ex :
Eng 1 : ch1 = toto, ch2=tata,ch3=popo,ch4=lolo
Eng 2 : ch1=toto, ch2=yaya, ch3=lklk, ch4=koko
Emg 3 : ch1=toto, ch2=tata,ch3=mama,ch4=haha
les deux enregistrements qui sont en doublon dans cette exemple sont Eng1 et Eng3
parce que Eng1.ch1=Eng3.ch1 ET Eng1.ch2=Eng3.ch2
le resulta de ma requette doit etre seulement
Eng 1 : ch1 = toto, ch2=tata,ch3=popo,ch4=lolo
Eng 2 : ch1=toto, ch2=yaya, ch3=lklk, ch4=koko
OU OU
Eng 2 : ch1=toto, ch2=yaya, ch3=lklk, ch4=koko
Emg 3 : ch1=toto, ch2=tata,ch3=mama,ch4=haha
tu voie mieux maintenant je ponse
merci
chaibat05
Messages postés1883Date d'inscriptionsamedi 1 avril 2006StatutMembreDernière intervention20 novembre 20072 15 déc. 2006 à 00:23
Dans ce cas tu ne fais le regroupement que pour les champs
que tu éstimes en double.Pour les autres c' est la Première ligne que
tu prend (First).
Et ne mélange pas l' énumération avec le ALL (*=Tout)
Dans mon exemple il n' y a pas de , TaTable * FORM.
Tu vois ce que je veux dire ?
Testes ceci pour voir :
"SELECT TaTable.Chp1, TaTable.Chp2, First( TaTable.Chp3), " _
& " First( TaTable.Chp4) FROM TaTable
GROUP BY TaTable.Chp1, TaTable.Chp2;"
cs_mickey35
Messages postés3Date d'inscriptionlundi 8 janvier 2007StatutMembreDernière intervention 9 janvier 2007 9 janv. 2007 à 11:30
Bonjour,
fais une requète imbriquée du style et en union
SELECT T.*
FROM TABDLE GENERAL WEB ET CEGID T
WHERE T.CODEPROEXTERNE in
( SELECT DISTINCT T.CODEPROEXTERNE FROM [TABDLE GENERAL WEB ET CEGID] T )
UNION
SELECT T.*
FROM TABDLE GENERAL WEB ET CEGID T
WHERE T.IDFLUXIMPORT in
( SELECT DISTINCT T.IDFLUXIMPORT FROM [TABDLE GENERAL WEB ET CEGID] T )
PS : j'ai mis un alias sur ta table pour ne pas allonger le code.
cs_mickey35
Messages postés3Date d'inscriptionlundi 8 janvier 2007StatutMembreDernière intervention 9 janvier 2007 9 janv. 2007 à 11:34
En fait, j'avais pas tout lu dans les autres messages. suite à ton exemple, fais une conaténation de ton champ1 & 2 , et fais un select sur le distinct du resultat.
cela doit donner qque chose du style
:
SELECT T.*
FROM TABDLE GENERAL WEB ET CEGID T
WHERE T.CODEPROEXTERNE||T.IDFLUXIMPORT in
( SELECT DISTINCT T.CODEPROEXTERNE||T.IDFLUXIMPORT FROM [TABDLE GENERAL WEB ET CEGID] T )
Attention , les requètes imbriquées, cela rallonge ton temps de r'éxécution de requète.