"Vladimiro Leone" <***@alice.it> ha scritto nel messaggio news:d174cfe0-e77c-4099-8c2a-***@30g2000yqu.googlegroups.com...
On 16 Gen, 20:42, "Michele Menniti"
Post by Michele MennitiHo una tabella con oltre 1000 nominativi, dei quali circa il 20% sono
duplicati da eliminare.
Cognome, Nome, DataDiNascita (se serve posso aggiungere un Id)
Devo eliminare SOLO il duplicato, quindi se sono presenti N°2 Rossi Mario
01/01/1980, uno deve restare e l'altro deve essere eliminato.
Grazie.
--
Michele Menniti
Ciao Michele, se ti fa comodo, con una query puoi verificare tutti i
duplicati esistenti e magari cancellarli nella query stessa, badando
naturalmente a non cancellare quello "originale".
SELECT *
FROM tabella1
WHERE (((Exists (SELECT Cognome,Nome,DataDiNascita
FROM tabella1 As Tmp
WHERE Tmp.Cognome=tabella1.Cognome
AND Tmp.Nome=tabella1.Nome
AND Tmp.DataDiNascita=tabella1.DataDiNascita
GROUP BY Cognome,Nome,DataDiNascita
HAVING Count(*)>1 ))<>False))
ORDER BY tabella1.Cognome;
Cambia il nome Tabella1 con il vero nome della tua tabella.
Ciao Vladimiro.
Ciao Vladimiro,
ho risolto col suggerimento di Geppo, mi è bastato poi eliminare la tabella
originale e rinominare la nuova.
Riguardo al tuo suggerimento, io ero arrivato a numerare progressivamente le
occorrenze, per cui avevo circa 800 record col n°1 e circa 200 col n° 2 ma
non riuscivo ad applicare il comando DELETE all'"esterno" del codice, per
eliminare i soli record col N°2.
Fare l'operazione manualmente è ovviamente possibile ma scomoda e
pericolosa.
Grazie comunque dell'idea, tornerà utile in altre situazioni.
--
Michele Menniti