Newsgroup: it.comp.appl.access
Titolo: Cancellare duplicati

Ciao a tutti
Ho una tabella con circa 8000 record dove molti di questi sono doppi ,Cioč 
uguali, dovrei cancellare di tutti i record doppi,lasciandone solo una delle 
copie ,come faccio ?
Grazie e scusate la mia imbranataggine. 

 wrote:
 (...) 

Se la tua tabella si chiama Tabella1, con la seguente query
SELECT DISTINCT
Tabella1.* INTO NuovaTabella1
FROM Tabella1
ottieni una tabella chiamata NuovaTabella1 che contiene solo
un'occorrenza per ciascuno dei record della tabella originale che
rimane inalterata.
Ho interpretato che con "record doppi" tu intendessi "record in cui
tutti i campi contengono valori identici".
Se non fosse cosě la query sopra NON funziona.
Nel caso riposta con maggiori dettagli (lin particolare, la struttura
della tabella ed il significato dei valori in essa contenuti)
Vincenzo Turturro 
Certificato Eucip Core Level 
ITA 0000-002299 del 14/05/2007 
--------------------------------------------- 
il sito comune di it.comp.appl.access: 
http://www.sitocomune.com
 
--------------------------------------------- 
risorse Access: 
http://www.accessgroup.it
 
--------------------------------------------- 
Il sito comune di it.comp.as400 
http://www.faq400.com
 
---------------------------------------------

Grazie per la risposta
L'unico campo che non č uguale č il contatore ,infatti non funziona ,come mi 
hai detto tu hai altri suggerimenti da darmi?
"VT @ Work" <V...@Work.it> ha scritto nel messaggio 
news:anshl31hqec7oeoan...@4ax.com...


hai detto tu hai altri suggerimenti da darmi?
Prima di tutto ti invito a conformarti alle regole di questo NG che trovi qui:
www.sitocomune.com
nella sez. ICAA, in particolare a scrivere dopo il messaggio originale e non prima.
Veniamo a noi:
suppongo che delle varie righe duplicate sia indifferente quale conservare.
In base a questa ipotesi crea una nuova query con la seguente istruzione SQL e salvala con il nome PrimoID
SELECT First(Tabella1.ID) AS PrimoID, Tabella1.Valore
FROM Tabella1
GROUP BY Tabella1.Valore
Quindi crea la seguente query
SELECT Tabella1.* INTO NUovaTabella1
FROM Tabella1 INNER JOIN PrimoID ON Tabella1.ID = PrimoID.PrimoID
che crea la tabella NuovaTabella1 contenente le righe di Tabella1 corrispondenti all'ID di valore piů basso fra quelli
assegnati ad ogni insieme di righe duplicate.


 assegnati ad ogni insieme di righe duplicate.
Scusa il ritardo ma sono stato fuori qualche giorno
Purtroppo non è funzionale come intendevo perchè i record doppi anno campi 
uguali ma ogni record doppio ha campi uguali diversi da altri record doppi 
,per esempio :
   Contatore Des_Op Cod_Cli Code_Fo D_Rege D_Sc_RB D_Sc_Ef Ver_Reg Ver_B_Fat 
D_Fa D_Na_Ac D_B N_Fa N_Na_Ac N_B Im_Da_Pag Im_Da_Ris En_C Us_C Us_B En_B 
Sconto Sp_Ins Mod_Di_Pag Annot T_Doc N_Ric
      57302 Pagamento
     Man 20/11/2001
     0 0 14/11/2001
     15300
     0 0 0 0 128165,49 0 0 0
     pagato
      230626 Pagamento
     Man 20/11/2001
     0 0 14/11/2001
     15300
     0 0 0 0 128165,49 0 0 0
     pagato
   Contatore Des_Op Cod_Cli Code_Fo D_Rege D_Sc_RB D_Sc_Ef Ver_Reg Ver_B_Fat 
D_Fa D_Na_Ac D_B N_Fa N_Na_Ac N_B Im_Da_Pag Im_Da_Ris En_C Us_C Us_B En_B 
Sconto Sp_Ins Mod_Di_Pag Annot T_Doc N_Ric
      252237 Incasso Ricotrans
     17/12/2002
     0 0
     17/12/2002
     13224 0 0 18607,1 0 0 0 0 0
     pagato
      80950 Incasso Ricotrans
     17/12/2002
     0 0
     17/12/2002
     13224 0 0 18607,1 0 0 0 0 0
     pagato

 ,per esempio :
Scusa la confusione ma non era così che volevo mostrarti l'esempio scusate 
tutti di nuovo.

tutti di nuovo.
A dire che ci ho capito qualcosa, direi una gran bugia ...


 A dire che ci ho capito qualcosa, direi una gran bugia ...
Scusami Vincenzo ,provo a spiegarmi meglio.
Come dicevo prima ho una tabella con piů di 8000 record di cui molti sono 
doppi o tripli,cioč uguali ,cambia solo il campo ID Contatore,quello che 
dovrei fare č che di questi record doppi o tripli me ne rimanga uno solo 
eliminando gli altri. Ok fino qua .
Ora il problema č che la tabella ,avendo circa 25 campi,ha di ogni gruppo di 
record doppi ,non gli stessi campi riempiti con il valore ma diversi 
esempio:
id_contatore   Campo1   Campo2   Campo3   Campo 4
------------------   ------------   ------------   ------------    -------------
001                   abcd         1234        12/11/07
002                   abcd         1234        12/11/07
id_contatore   Campo1   Campo2   Campo3   Campo 4
------------------   ------------   ------------   ------------    -------------
003                                     4321                          pagato
004                                     4321                          pagato
id_contatore   Campo1   Campo2   Campo3   Campo 4
------------------   ------------   ------------   ------------    -------------
005                   dcba                          21/06/06   r.b.
006                   dcba                          21/06/06   r.b.
007                   dcba                          21/06/06   r.b.
Naturalmente i campi sono molti di piů e non so come fare ,spero che 
l'esempio sia capibile grazie.

l'esempio sia capibile grazie.
Vincenzo Turturro 
