OVH Cloud OVH Cloud

Recherche requête.

2 réponses
Avatar
Patrick Asselin
Voilà mon problème:
J'ai une liste de clients avec un identifiant (nombre qui s'incrémente pour
chaque nouveau client) pour chacun d'eux, seulement plusieurs clients
reviennent avec des identifiants différents (à cause d'adresse qui change ou
à cause d'une faute de frappe,...), j'arrive à les isoler avec une requête X
qui recherche les doublons, mais ce que je voudrai faire c'est créer une
autre table T_new_id avec deux colonnes (ou plus si nécessaire): ancien_id et
nouveau_id afin de récupérer les dernières informations concernant mes
clients (nouvelle adresse suite à un déménagement, ...). Dans la colonne
nouveau_id, je voudrai mettre en fait le plus grand identifiant de ceux qui
sont sélectionné pour des doublons.
Pour être un peu plus clair, je vous donne un exemple ( Prénom, Nom,
Identifiant):
François Martin 1452, François Martin 5432, Laurent Dupon 3654, Laurent
Dupon 7854 (en gros c'est que me sort ma requête X), et je voudrais avoir
dans une autre table (ancien_id, nouveau_id): 1452 5432, 5432 5432, 3654
7854; 7854 7854.
J'espère avoir été clair et vous remercie d'avance pour vos réponses.

Patrick Asselin.

2 réponses

Avatar
Yann
Salut Patrick,
Tu fais une requête d'ajout (pour chaque ajout de client
en mettant Id_Old=Id_Client et Id_New=Id_Client) et de
mise à jour (Id_New=Id_Client where doublon)
successivement... Mais je pense vraiment que c'est très
maladroit de faire cela car derrière tu dois gérer toutes
tes relations avec ce double (ou triple et +) client dans
toute ta base !!!

Je te conseil plutôt de verifier l'information (doublons)
avant l'ajout d'un nouveau client et demander
confirmation si c'est vraiment le même, comme ça tu n'as
qu'un seul client pour toute ta base...

Bye
Yann

-----Message d'origine-----
Voilà mon problème:
J'ai une liste de clients avec un identifiant (nombre
qui s'incrémente pour

chaque nouveau client) pour chacun d'eux, seulement
plusieurs clients

reviennent avec des identifiants différents (à cause
d'adresse qui change ou

à cause d'une faute de frappe,...), j'arrive à les
isoler avec une requête X

qui recherche les doublons, mais ce que je voudrai faire
c'est créer une

autre table T_new_id avec deux colonnes (ou plus si
nécessaire): ancien_id et

nouveau_id afin de récupérer les dernières
informations concernant mes

clients (nouvelle adresse suite à un
déménagement, ...). Dans la colonne

nouveau_id, je voudrai mettre en fait le plus grand
identifiant de ceux qui

sont sélectionné pour des doublons.
Pour être un peu plus clair, je vous donne un exemple (
Prénom, Nom,

Identifiant):
François Martin 1452, François Martin 5432, Laurent
Dupon 3654, Laurent

Dupon 7854 (en gros c'est que me sort ma requête X), et
je voudrais avoir

dans une autre table (ancien_id, nouveau_id): 1452 5432,
5432 5432, 3654

7854; 7854 7854.
J'espère avoir été clair et vous remercie d'avance
pour vos réponses.


Patrick Asselin.
.



Avatar
Yann
Re-,
Ok, va pour cette organisation... même si ce n'est pas
correct, le chef a toujours raison ;o)
Pour chaque nouveau client (peut être à mettre dans le
formulaire de saisie des clients dans l'évènement
Form_AfterUpdate
Lstr_SQL = "INSERT INTO TableEquivalenceClient (OldId,
NewId)"
Lstr_SQL = Lstr_SQL & " SELECT TableClient.Id"
Lstr_SQL = Lstr_SQL & " FROM TableClient"
Lstr_SQL = Lstr_SQL & " WHERE TableClient.Id = Forms!
FormulaireSaisieNouveauClient!Id;"
DoCmd.RunSQL Lstr_SQL
Ensuite tu dois faire une mise à jour en fonction des
doublons que tu as trouvé
Lstr_SQL = "UPDATE TableEquivalenceClient"
Lstr_SQL = Lstr_SQL & " SET TableEquivalenceClient.NewId
= Forms!FormulaireSaisieNouveauClient!Id"
Lstr_SQL = Lstr_SQL & " WHERE Conditions du doublons;"
DoCmd.RunSQL Lstr_SQL

Ca devrait aller...

Bye
Yann

-----Message d'origine-----
Merci Yann,
En fait je t'explique ma situation, je reçoit 2 tables
qui contiennent mes

clients avec informations (+ de 700000) et ce qu'ils ont
acheté avec

description.
Moi je suis dans le marketing et mon but est de faire de
la prospection via

mailing, or j'ai plus de 200000 clients qui reviennent 1
ou plusieurs fois

parceque (la plupart du temps) ils ont changer
d'adresse, donc c'est assez

embetant d'envoyer 200000 lettre qui ne vont pas arriver
à destination.


"Je te conseil plutôt de verifier l'information
(doublons)

avant l'ajout d'un nouveau client et demander
confirmation si c'est vraiment le même, comme ça tu
n'as


qu'un seul client pour toute ta base..."
J'y avait déjà penser mais mon supérieur ma dit que

c'est une perte de temps

et que de toute façon comme on fait parti d'un groupe,
il y en aura toujours

un qui ne va pas le faire, donc c'est pour çà que j'ai
penser faire une table

qui associe les ancien identifiant à ceux qui sont
valides en fait (par

rapport à l'adresse).

"Tu fais une requête d'ajout (pour chaque ajout de
client

en mettant Id_Old=Id_Client et Id_New=Id_Client) et de
mise à jour (Id_New=Id_Client where doublon)
successivement"
Tu peux m'expliquer plus en détail à quoi çà devrait

ressembler, j'ai

quelque base en sql mais là je sèche.


Salut Patrick,
Tu fais une requête d'ajout (pour chaque ajout de
client


en mettant Id_Old=Id_Client et Id_New=Id_Client) et de
mise à jour (Id_New=Id_Client where doublon)
successivement... Mais je pense vraiment que c'est
très


maladroit de faire cela car derrière tu dois gérer
toutes


tes relations avec ce double (ou triple et +) client
dans


toute ta base !!!

Je te conseil plutôt de verifier l'information
(doublons)


avant l'ajout d'un nouveau client et demander
confirmation si c'est vraiment le même, comme ça tu
n'as


qu'un seul client pour toute ta base...

Bye
Yann

-----Message d'origine-----
VoilÃf mon problÃf¨me:
J'ai une liste de clients avec un identifiant (nombre
qui s'incrÃf©mente pour

chaque nouveau client) pour chacun d'eux, seulement
plusieurs clients

reviennent avec des identifiants diffÃf©rents (Ãf
cause



d'adresse qui change ou
Ãf cause d'une faute de frappe,...), j'arrive Ãf
les



isoler avec une requÃfªte X
qui recherche les doublons, mais ce que je voudrai
faire



c'est crÃf©er une
autre table T_new_id avec deux colonnes (ou plus si
nÃf©cessaire): ancien_id et

nouveau_id afin de rÃf©cupÃf©rer les derniÃf¨res
informations concernant mes

clients (nouvelle adresse suite Ãf un
dÃf©mÃf©nagement, ...). Dans la colonne

nouveau_id, je voudrai mettre en fait le plus grand
identifiant de ceux qui

sont sÃf©lectionnÃf© pour des doublons.
Pour Ãfªtre un peu plus clair, je vous donne un
exemple (



PrÃf©nom, Nom,
Identifiant):
FranÃf§ois Martin 1452, FranÃf§ois Martin 5432,
Laurent



Dupon 3654, Laurent
Dupon 7854 (en gros c'est que me sort ma requÃfªte
X), et



je voudrais avoir
dans une autre table (ancien_id, nouveau_id): 1452
5432,



5432 5432, 3654
7854; 7854 7854.
J'espÃf¨re avoir Ãf©tÃf© clair et vous remercie
d'avance



pour vos rÃf©ponses.

Patrick Asselin.
.



.