Buongiorno a tutti,
Vi spiego il mio problema, ho nel database Access una tab_anagrafiche contenente + di 18.000 clienti, tramite EDI dei nostri partner ci inviano file contenenti anagrafiche che dobbiamo caricare nel nostro Db, quello che vorrei evitare è di crearne delle nuove quando non necessario perché già esistenti.
Mi spiego meglio: tab_anagrafiche
Campi:
den_sociale
indirizzo
Stato
Cap
Localita
In tabella ho per esempio il cliente: F.lli Rossi S.r.l. Via Fabrizio Massimo 22 10099 San Mauro Torinese TO Italia
Mi arriva un file che dovrei caricare con l'anagrafica che potrebbe essere scritta nei seguenti modi (che quindi non dovrebbe essere accodata al Db perché già esistente):
Fratelli Rossi Srl oppure
Rossi Fratelli S.r.l. oppure
Flli Rossi oppure
Fratelli Rossi oppure
etc. etc.
Via F. Massimo 22
10099 S. Mauro T.se TO Italia
Prima di tutto pensavo di caricare le anagrafiche in arrivo su una tabella "temporanea" (tab_ana_temp) poi parto dalla prima e faccio una query cercando le anagrafiche su tab_anagrafiche che hanno lo stesso Stato e i primi due digit del Cap (perché anche il Cap potrebbe essere errato tipo Torino 10152 invece di 10151), in questo modo riduco sensibilmente il numero di anagrafiche da matchare, poi?
Ho letto dei thread inerenti alla distanza di Levenshtein ed altri invece consigliavano di utilizzare semplicemente il Like, ma nel caso di F.lli Rossi S.r.l. Via Fabrizio Massimo 22 10099 San Mauro Torinese TO Italia in tab_anagrafiche VS Fratelli Rossi Via F. Massimo 22 10099 S. Mauro T.se TO Italia, se applicassi l'algoritmo di Levenshtein sulla ragione sociale il risultato sarebbe deludente, mentre funzionerebbe il Like ma solo su di una parte (Rossi)
Avete idee in merito?
Grazie a tutti