PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → SUPPRIMER DES DOUBLONS
SUPPRIMER DES DOUBLONS
Débuté par Tiana, 29 sep. 2014 10:53 - 3 réponses
Posté le 29 septembre 2014 - 10:53
Bonjour,

Quelqu'un peut m'aider à supprimer les doublons (simple mais rapide) dans un fichier avec code SQL?
A noter que j'ai 5 000 000 de lignes comportant plusieurs doublons.
Merci
Posté le 29 septembre 2014 - 11:35
Bonjour,
Le "problème" avec SQL est qu'il s'agit d'un langage ensembliste, donc il
faut pouvoir distinguer une ligne de ses doublons.
Est-ce qu'il existe une colonne dans cette table qui permet faire cette
distinction ?

Frédéric.

"Tiana" a écrit dans le message de groupe de discussion :
20148be59af74aaa6b81e862650fa535e912@news.pcsoft.fr...

Bonjour,

Quelqu'un peut m'aider à supprimer les doublons (simple mais rapide) dans un
fichier avec code SQL?
A noter que j'ai 5 000 000 de lignes comportant plusieurs doublons.
Merci
Membre enregistré
26 messages
Posté le 29 septembre 2014 - 14:48
Bonjour,
connex est une Connexion
connex..Provider = hAccèsHF7

Reqsql est une chaîne
Bdata est une Source de Données
//*****************************SUPPRESSION DIRECTE************************************
//Reqsql = "DELETE FROM util LEFT OUTER JOIN (SELECT MIN(util.IDutil) as id, util.uti_nom FROM util GROUP BY util.uti_nom) AS util2 ON util.IDutil = util2.id WHERE util2.id is NULL"
//***********************************************************************************
Reqsql = "SELECT * FROM util LEFT OUTER JOIN (SELECT MIN(util.IDutil) as id, util.uti_nom FROM util GROUP BY util.uti_nom) AS util2 ON util.IDutil = util2.id WHERE util2.id is NULL"
SI HExécuteRequêteSQL(Bdata,connex,hRequêteDéfaut,Reqsql) ALORS
POUR TOUT Bdata
//******************SUPPRESSION AVEC CODE WINDEV ***********************
//hlitrecherchepremier(util,IDutil,bdata.idutil)
//si htrouve(util) ALORS
//hsupprime(util,hNumEnrEnCours)
//FIN
// *********************************************************************
Trace(Bdata.idutil+ " : "+Bdata.uti_nom)
FIN
SINON
Info(HErreurInfo())
FIN
Cordialement,
FERRERE Vincent
Posté le 21 septembre 2024 - 12:20
La suppression directe ("DELETE FROM ...") ne fonctionne plus pour moi
alors que "SELECT * FROM ..." fonctionne bien
raison ?
j'ai pallié à ce pblm en ajoutant un morceau de code comme l'a fait DODOPROG