Salve , tramite il prezioso aiuto di Giorgio Roncati , ero riuscito ad ottenere una query che mi ha eliminato circa il 90% di record duplicati prensenti in una tabella , lasciando ovviamente solo il record più aggiornato su un determinato campo. Ora dopo
aver fatto altre modifiche alla query per eliminare altri doppioni , ho il problema di dover eliminare il record doppio che però ha il campo telefono meno lungo.
A questo fine ho provato a modificare la query in questo modo non ottenendo però alcun esito:
SELECT *
FROM clienti
WHERE EXISTS (SELECT 1 FROM clienti AS T1
WHERE T1.Nominativo=clienti.Nominativo AND
T1.Indirizzo=clienti.Indirizzo AND
T1.Citta=clienti.Citta and
t1.telefono=clienti.telefono
GROUP BY Nominativo, Indirizzo, Citta, telefono
HAVING COUNT(*)>1 AND Min(Len([telefono])) <> Len([clienti.telefono])
);
convinto che il problema fosse nel calcolo della Len , ho provato a creare una query che mi estrapolasse la Len per poi darla "in pasto" alla query sopra, ciò che però ottengo è questo errore: "Errore sconosciuto del modulo di gestione di database di Access"
la query dove ottengo la Len è questa:
SELECT clienti.codice, clienti.nominativo, clienti.sesso, clienti.indirizzo, clienti.[codice fiscale], clienti.citta, clienti.data_nascita, clienti.luogo_nascita, clienti.telefono, Len([telefono]) AS tel_
FROM clienti;
e la query per ottenere il dato da cancellare a quel punto diventa:
SELECT *
FROM cli
WHERE EXISTS (SELECT 1 FROM cli AS T1
WHERE T1.Nominativo=cli.Nominativo AND
T1.Indirizzo=cli.Indirizzo AND
T1.Citta=cli.Citta and
t1.tel_=cli.tel_
GROUP BY Nominativo, Indirizzo, Citta, telefono
HAVING COUNT(*)>1 AND Min(tel_) <> (cli.tel_)
);
che appunto restituisce l'errore sopra.
Non riesco a capire dove sbaglio ... se qualcuno riesce ad indirizzarmi gli sarei grato.
Grazie anticipatamente