Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Deleteing the last duplicate
Message
De
28/10/2013 10:13:49
 
 
À
28/10/2013 10:00:57
Information générale
Forum:
Visual FoxPro
Catégorie:
Base de données, Tables, Vues, Index et syntaxe SQL
Versions des environnements
Visual FoxPro:
VFP 9 SP2
OS:
Windows Server 2012
Network:
Windows 2008 Server
Database:
MS SQL Server
Application:
Web
Divers
Thread ID:
01586533
Message ID:
01586576
Vues:
39
>>>Hi All:
>>>What's the easiest and most elegant way to remove the SECOND duplicate.
>>>IOW, when there is a dupe, get rid of the second record.
>>>Thanks,
>>>Yossi
>>
>>
>>There may be a better way. I have used this.
>>
>>
* Prepare the table for the operation
>>SELECT tableWithDuplicates
>>ALTER TABLE ADD COLUMN lDuplicate L
>>
>>* Mark everything initially as a duplicate
>>REPLACE ALL lDuplicate WITH .T.
>>
>>* Create an index of unique records
>>INDEX ON my+Unique+Key+Fields UNIQUE TAG dupTemp
>>
>>* Mark every unique record as not being a duplicate (the nature of the INDEX ON command mandates that the UNIQUE records are top-most in row order)
>>REPLACE ALL lDuplicate WITH .F.
>>
>>* Remove the index
>>SET INDEX TO
>>
>>* The records which are marked lDuplicate = .T. are the second (and later) duplicates
>>
>>* Delete those records and then PACK, mark lDeleted = .T., or whatever...
>>
>>ALTER TABLE DROP COLUMN lDuplicate
>>DELETE TAG dupTemp
>>
>Sorry Rick,
>I am afraid this will not work since Yossi replied the key's are same therefore not unique.
>Yossi wants to delete the second record, whatever that means, containing corrupt data.
>Better to make a SQL select on corrupt data conditon, however Yossi has not replied what qualifies his data as begin corrupt.
>Rgds,
>Koen


It will work. The key fields I mention are not table keys, but uniquely identifying index keys.
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform