Bonjour,
Comment feriez-vous pour supprimer par SQL des enregistrements en double (triple ou plus) dans un fichier pour n'en garder qu'un seul ?
Tout d'abord est-ce possible ?
--Message édité par le 08-01-07 à 16:47:33--
Par exemple =>
DELETE FROM T1 A
WHERE RRN( A ) NOT IN (
SELECT MAX( RRN( B ) FROM T1 B WHERE A.COLX = B.COLX)
)
--Message édité par Serge le 08-01-07 à 17:01:21--
--Message édité par Serge le 08-01-07 à 17:01:58--
Merci ça marche super bien mais je n'ai pas bien compris comment ça marchait... Tu peux m'expliquer rapidement ? C'est le RRN (A) que je ne connais pas dans ce cas-là...
rrn te donne le rang de l'enregistrement
test cette requete
select rrn(t1), zone1_de_t1, zone2_de_t1 from t1
merci
on peut travailler éventuellement sur ce rang s'il n'y a pas de clé sur un fichier ou si on veut travailler dans l'ordre d'écriture des enregistrements ....
--Message édité par Saavik le 09-01-07 à 12:50:23--
Pour info, si on veut afficher le rang de l'enregistrement et l'intégralité des zones du fichier T1, la syntaxe est la suivante :
select rrn(t1), t1.* from t1
On en apprend tous les jours dans ce boulot, c'est pour ça qu'on l'aime...
Grâce à vous, j'ai pu apprendre beaucoup de choses intéressantes. J'espère en apprendre encore. Je vous félicite pour ces merveilleux partages. Continuez ainsi !
voyance gratuite par mail