Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Souci SQL

1 réponse
Avatar
Christian
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)="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.

Avez-vous une idée ?

Christian.

1 réponse

Avatar
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.