Je cherche à récupérer les id d'une table qui "pourrait" contenir des
doublons et de les insérer dans une table de stockage.
Voici la requête dont j'use :
INSERT INTO recupdoublonBD ( IdDoublons, Telephone )
SELECT telephone.IDrensTel, "telephone" AS etat
FROM telephone
WHERE (((telephone.Tel) In (SELECT tTable.Tel
FROM Telephone AS tTable INNER JOIN Renseignement ON tTable.IDrensTel =
Renseignement.ID
GROUP BY tTable.Tel, Renseignement.Incorporation
HAVING (((Count(tTable.Tel))>1) AND ((Renseignement.Incorporation)="oui"));
)));
Le souci que je rencontre est qu'au lieu d'avoir un id par doublon trouvé je
les ai en double exemplaire. Par exemple je sors deux numéros en doublon, le
résultat de ma requête m'en montre 4. J'ai deux fois les mêmes.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Gloops
Bonjour,
Je n'ai pas le temps de regarder en détail, mais quand j'ai besoin de détecter des doublons, j'utilise Count() avec les arguments qui vont bien, du style WHERE CHAMP='ça' (étant entendu que le 'ça' change à chaque ligne, donc à la place on fait une concaténation pour obtenir une requête avec la valeur du champ "WHERE CHAMP='" & CHAMP & "'"
Ensuite, partout où cette colonne retourne plus que 1, c'est qu'il y a des doublons, et on sait combien.
Il n'est pas exclu d'utiliser un DISTINCT dans le SELECT pour afficher sans doublon, mais bien sûr pas dans le Count.
Voilà, c'est les grands principes, après il faut mettre en uvre.
________________________________________ Christian a écrit, le 02/06/2008 14:27 :
Bonjour,
Je cherche à récupérer les id d'une table qui "pourrait" contenir des doublons et de les insérer dans une table de stockage.
Voici la requête dont j'use :
INSERT INTO recupdoublonBD ( IdDoublons, Telephone ) SELECT telephone.IDrensTel, "telephone" AS etat FROM telephone WHERE (((telephone.Tel) In (SELECT tTable.Tel FROM Telephone AS tTable INNER JOIN Renseignement ON tTable.IDrensTel = Renseignement.ID GROUP BY tTable.Tel, Renseignement.Incorporation HAVING (((Count(tTable.Tel))>1) AND ((Renseignement.Incorporation)="o ui")); )));
Le souci que je rencontre est qu'au lieu d'avoir un id par doublon trou vé je les ai en double exemplaire. Par exemple je sors deux numéros en doub lon, le résultat de ma requête m'en montre 4. J'ai deux fois les mêmes.
Avez-vous une idée ?
Christian.
Bonjour,
Je n'ai pas le temps de regarder en détail, mais quand j'ai besoin de
détecter des doublons, j'utilise Count() avec les arguments qui vont
bien, du style WHERE CHAMP='ça' (étant entendu que le 'ça' change à
chaque ligne, donc à la place on fait une concaténation pour obtenir une
requête avec la valeur du champ
"WHERE CHAMP='" & CHAMP & "'"
Ensuite, partout où cette colonne retourne plus que 1, c'est qu'il y a
des doublons, et on sait combien.
Il n'est pas exclu d'utiliser un DISTINCT dans le SELECT pour afficher
sans doublon, mais bien sûr pas dans le Count.
Voilà, c'est les grands principes, après il faut mettre en uvre.
________________________________________
Christian a écrit, le 02/06/2008 14:27 :
Bonjour,
Je cherche à récupérer les id d'une table qui "pourrait" contenir des
doublons et de les insérer dans une table de stockage.
Voici la requête dont j'use :
INSERT INTO recupdoublonBD ( IdDoublons, Telephone )
SELECT telephone.IDrensTel, "telephone" AS etat
FROM telephone
WHERE (((telephone.Tel) In (SELECT tTable.Tel
FROM Telephone AS tTable INNER JOIN Renseignement ON tTable.IDrensTel =
Renseignement.ID
GROUP BY tTable.Tel, Renseignement.Incorporation
HAVING (((Count(tTable.Tel))>1) AND ((Renseignement.Incorporation)="o ui"));
)));
Le souci que je rencontre est qu'au lieu d'avoir un id par doublon trou vé je
les ai en double exemplaire. Par exemple je sors deux numéros en doub lon, le
résultat de ma requête m'en montre 4. J'ai deux fois les mêmes.
Je n'ai pas le temps de regarder en détail, mais quand j'ai besoin de détecter des doublons, j'utilise Count() avec les arguments qui vont bien, du style WHERE CHAMP='ça' (étant entendu que le 'ça' change à chaque ligne, donc à la place on fait une concaténation pour obtenir une requête avec la valeur du champ "WHERE CHAMP='" & CHAMP & "'"
Ensuite, partout où cette colonne retourne plus que 1, c'est qu'il y a des doublons, et on sait combien.
Il n'est pas exclu d'utiliser un DISTINCT dans le SELECT pour afficher sans doublon, mais bien sûr pas dans le Count.
Voilà, c'est les grands principes, après il faut mettre en uvre.
________________________________________ Christian a écrit, le 02/06/2008 14:27 :
Bonjour,
Je cherche à récupérer les id d'une table qui "pourrait" contenir des doublons et de les insérer dans une table de stockage.
Voici la requête dont j'use :
INSERT INTO recupdoublonBD ( IdDoublons, Telephone ) SELECT telephone.IDrensTel, "telephone" AS etat FROM telephone WHERE (((telephone.Tel) In (SELECT tTable.Tel FROM Telephone AS tTable INNER JOIN Renseignement ON tTable.IDrensTel = Renseignement.ID GROUP BY tTable.Tel, Renseignement.Incorporation HAVING (((Count(tTable.Tel))>1) AND ((Renseignement.Incorporation)="o ui")); )));
Le souci que je rencontre est qu'au lieu d'avoir un id par doublon trou vé je les ai en double exemplaire. Par exemple je sors deux numéros en doub lon, le résultat de ma requête m'en montre 4. J'ai deux fois les mêmes.