Newsgroup: it.comp.appl.access
Titolo: Aiuto e Query...

salve amici...ho una query che mi ricerca i codici doppi di protocollo cosě
composta :
SELECT Token(Anagrafe.N_Protocollo,"/",3) AS N_ProtocolloCampo,
Count(Anagrafe.N_Protocollo) AS NumDuplicati, Anagrafe.Cognome,
Anagrafe.Nome, Anagrafe.Nascita
FROM Anagrafe
GROUP BY Token(Anagrafe.N_Protocollo,"/",3), Anagrafe.Cognome,
Anagrafe.Nome, Anagrafe.Nascita
HAVING (((Count(Anagrafe.N_Protocollo))>1));
---------------------------------------
perň vorrei che il risultato dei doppioni/tripli sia visualizzato
completamente in maniera da fare una verifica della differenza...tra i vari
record...... esempio...
N_Protocollo
F1261
F1261
G345
G345...
spero di essermi spiegato bene... grazie...

 spero di essermi spiegato bene... grazie...
vedo che sei diventato un pippo normale;<)
select * from anagrafe 
where Token(Anagrafe.N_Protocollo,"/",3) in (
 SELECT Token(Anagrafe.N_Protocollo,"/",3) 
 FROM Anagrafe
 GROUP BY Token(Anagrafe.N_Protocollo,"/",3), 
 HAVING Count(Anagrafe.N_Protocollo)>1);
dovrebbe funzionare
-- 
Alessandro Cara
P.S. la prossima volta che i meriti della soluzione li giri a qualcun
altro giuro che non ti scrivo piu' ;<)))))))))))

 ha scritto nel messaggio
news:3AA74223...@blunet.it...
| Pippo wrote:
| >
| |
| vedo che sei diventato un pippo normale;<)
----------------------------
beh...al lavoro divento Normale ed  a casa sono Super... ^_^
.-------------------------------------------
| select * from anagrafe
| where Token(Anagrafe.N_Protocollo,"/",3) in (
|  SELECT Token(Anagrafe.N_Protocollo,"/",3)
|  FROM Anagrafe
|  GROUP BY Token(Anagrafe.N_Protocollo,"/",3),
|  HAVING Count(Anagrafe.N_Protocollo)>1);
|
| dovrebbe funzionare
| --
| Alessandro Cara
| P.S. la prossima volta che i meriti della soluzione li giri a qualcun
| altro giuro che non ti scrivo piu' ;<)))))))))))
...............................
beh... scusami ...è passato un bel pò di tempo da quando mi hai suggerito la
tua
splendida Token... e non frequentavo x impegni di lavoro l'attività di NG...
la tua Token funziona benissimo...
però le esigenze escono col tempo...il DB si ingrandisce ed i doppioni ed i
tripli errori di N_Protocollo aumentano....domani al lavoro proverò la tua
soluzione...
scusami se non ho postato a te direttamente... Ciao....:o)))))
--
SuperPippo [;o))
e

 scusami se non ho postato a te direttamente... Ciao....:o)))))
non  e' questo. E' giusto che tu posti sull'NG, non e' una cosa
personale.
-- 
Alessandro Cara


select * from anagrafe
where Token(Anagrafe.N_Protocollo,"/",3) in (
 SELECT Token(Anagrafe.N_Protocollo,"/",3)
 FROM Anagrafe
 GROUP BY Token(Anagrafe.N_Protocollo,"/",3),
 HAVING Count(Anagrafe.N_Protocollo)>1);
dovrebbe funzionare
--------------
ciao Alessandro... provato stamane il codice di cui sopra...ma mi esce
"Errore nella sintassi "Group By"....
altre soluzioni ???
Ciao e buon fine settimana... potrň provare la query al lavoro lunedě
mattina...
oppure se ho tempo lo farň da casa... Ciao e grazie di nuovo...

 "Errore nella sintassi "Group By"....
azz. e' vero! c'e' una virgola di troppo, quella prima della HAVING,
ma pure tu un po' di sintassi dell'sql quando ti decidi a gardartela?
-- 
Alessandro Cara

 ha scritto nel messaggio
news:3AA929BA...@blunet.it...


sintassi dell'SQL ....non ci crederai ma non ho tempo...quando andrň in
ferie magari
mi ci dedico un pochettino....:o)))
Cmq... non ci crederai ma ho provato a togliere la virgola ma non
funziona... nel senso
che l'errore di "Group By" non me lo da piů ma in compenso ci mette 5 minuti
prima che si apra
la tabella Anagrafe in forma completa...senza trovarmi oltretutto i
doppioni......
esiste qualche altra soluzione...magari creando ex novo una query che faccia
questo lavoro ???
Ciao Alessandro...

 ha scritto nel messaggio
news:C5%q6.68048$Xj7.1...@news.infostrada.it...
[CUT]
Credimi mi interessa saperlo solo per curiosità personale, la mia risposta
dell' 8/3/2001 ore 11:49 al tuo messaggio "Query Ricerca duplicati & C." del
7/3/2001 ore 8:29 non funziona?
Per non fartela ricercare te la ripropongo:
Del codice SQL modifica solo la SELECT in:
SELECT First(Anagrafe.N_Protocollo) AS PrimoDiN_Protocollo,
Count(Anagrafe.N_Protocollo) AS NumDuplicati, Anagrafe.Cognome,
Anagrafe.Nome, Anagrafe.Nascita
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

 questo lavoro ???
Pippo, non mi torna. Non discuto del tempo, anche se 5m mi sembrano
troppi, neanche con 1/2milione di record e' stata cosi scostumata, ma,
il risultato DEVE darlo (l'ho provata) posta quello che hai scritto.
Da qualche parte c'e' un errore.
a.cara

 Da qualche parte c'e' un errore.
--------------------------
eppure...anche oggi ho provato e riprovato...con virgola mi dice errore di
Gropu by....e senza
virgola... ci mette 5 minuti per darmi la tabella Anagrafe intera...ed il pc
sembra che sia un Bradipo..
stato vegetativo...tanto che devo usare il Ctrl-alt-del x uscire da
Access...
Cmq ora ti posto il codice sql...
SELECT *
FROM anagrafe
WHERE Token(Anagrafe.N_Protocollo,"/",3) in (
 SELECT Token(Anagrafe.N_Protocollo,"/",3)
 FROM Anagrafe
 GROUP BY Token(Anagrafe.N_Protocollo,"/",3)
 HAVING Count(Anagrafe.N_Protocollo)>1);
--------------
è proprio un mistero... Ciao !!!

 Anagrafe.Nome, Anagrafe.Nascita
___________________________________________________
Ciao Roberto... anzitutto scusami x non aver dato riscontro al tuo aiuto...
oltretutto sei sempre  molto gentile e disponibile... e  hai risolto anche
tu
molti problemi di questo DB......(se ti ricordi).....
Cmq.. questa mattina ho provato il tuo codice.. ma non riesco neanche a
salvare la
query che mi esce questo messaggio di errore...
" L'istruzione Select include una parola riservata o un argomento scritto in
modo errato o mancante
 oppure la punteggiatura non è corretta"
.......sono perseguitato da errori.....
Ciao Roberto....

 Ciao Roberto....
Ciao Pippo,
OK, ma era solo una curiosità.


 è proprio un mistero... Ciao !!!
ok allora fai una cosa:
  SELECT Token(Anagrafe.N_Protocollo,"/",3) as NDoppi
  FROM Anagrafe
  GROUP BY Token(Anagrafe.N_Protocollo,"/",3)
  HAVING Count(Anagrafe.N_Protocollo)>1;
salva il tutto con nome EstraeDoppi
poi  fai la seguente select
select * from  estraedoppi, anagrafe
where ndoppi = token(n_protocollo,"/",3)
cosi' dovrebbe essere piu' veloce
Ma quanti record sono l'anagrafe?
-- 
Alessandro Cara

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
comincia a funzionare qualche cosa...
nel senso che ho fatto la query con l'SQL sopra descritto e mi trova ben 116
doppi !!
però me li visualizza con un unico numero di protocollo...
Cmq.. non ho applicato l'istruzione Select da te scritta ... o meglio non ho
ben capito se devo fare un'altra query oppure ...dove devo mettere
l'istruzione ... ???
x il momemto l'anagrafe contiene 8.000 record ma tra alcuni mesi raggiungerà
circa il doppio.
PS..... comunque non mi tornano i conti..... nel senso che lanciando la
query con l'istruzione sotto
riportata mi trova 8 doppioni...con l'ultima provata sono 116 .. ?? a quale
devo credere ???
--------------------------
SELECT Token(Anagrafe.N_Protocollo,"/",3) AS N_ProtocolloCampo,
Count(Anagrafe.N_Protocollo) AS NumDuplicati, Anagrafe.Cognome,
Anagrafe.Nome, Anagrafe.Nascita
FROM Anagrafe
GROUP BY Token(Anagrafe.N_Protocollo,"/",3), Anagrafe.Cognome,
Anagrafe.Nome, Anagrafe.Nascita
HAVING (((Count(Anagrafe.N_Protocollo))>1));
-----------------------------
ciao Alessandro...

 -----------------------------
La ragione c'e'. Io non mi ricordo piu' cosa tu inizialmente volevi (3
mesi fa). Tra quella che hai ripostato e la ultima c'e' questa grande
differenza:
1) la vecchia cerca i doppi nell'ambito del cognome,nome, data di
nascita
   (secondo me qui non hai solo protocolli doppi ma anche l'anagrafica
della    persona e' uguale)
2) La nuova cerca i doppi per tutto l'archivio. 
-- 
Alessandro Cara

 2) La nuova cerca i doppi per tutto l'archivio.
°°°°°°°°°°°°°°°°°°°°°°°°°°
la seconda query funziona perfettamente...e velocemente...
cmq trova 236 doppi ... non me lo aspettavo questo risultato (ma se trova
dei tripli li elenca) ???
beh.. la stessa cosa che volevo tre mesi fa vorrei ora... ossia una query
che mi elenca tutti i tipi di
doppioni che trova..in maniera da correggere il DB...
il Pc è un Celeron 333... con Win 95 C e Office 97 Professional...
infine ...posso fare ora un Report sul risultato della Query EstraeDoppi2 ed
eliminare alcuni campi
superflui non utili alla correzzione dell'Anagrafe.. dato che devo spedirli
ad altri uffici affinchè correggano
i dati.! Ho provato a farlo manualmente in Word... con un Copia-Incolla da
Access... ma tutti
i campi non entrano in un foglio orizzontale...
Ciao e buon fine settimana.....e grazie di tutto...