Newsgroup: it.comp.appl.access
Titolo: Criteri di selezione su query

Salve sono Fanciullo,
torno a chiedere sostegno nel gruppo dopo mesi. Quindi saluto tutti coloro 
che nelle precedenti occasioni mi hanno aiutato e tutti coloro che 
frequentano il gruppo.
Nella mia scuola ho un database access 97 che gestisce la anagrafica alunni.
Ho bisogno di individuare i pluriripetenti     (es. quelli che ripetono più 
volte la seconda).
Ho una query così riassunta:
COGNOME     NOME     CLASSE        AS                RIPETENTE
Fanciullo            Vito            2C                2006/07        Sì
Fanciullo            Vito            2D                2007/08        Sì
Antonello             Andrea     1A                2006/07        Sì
Antonello             Andrea     2D                2007/08        Sì
Quindi io devo filtrare quelli con stesso COGNOME, stesso NOME,  sono 
ripetenti
e per classe hanno un like 2* (quando ripetono non sono assegnati nella 
stessa classe dell'anno prima)
Non saprei proprio come fare
Grazie 

 ha scritto nel messaggio 
news:48d51fa5$0$41651$4faf...@reader4.news.tin.it...

dov'è il problema?
raggruppi per cognome nome ripetente e in un campo calcolato: left(classe;1) 
metti like "2*"
Ciao
-- 
Roberto da Parma 

volta,
vedi Antonello Andrea 2D.
Io ho la necessità di visualizzare solo quelli che sono stati bocciati
due anni sempre in seconda
vedi Fanciullo Vito 2C e 2D.
In base all'esempio di sopra io non vorrei vedere visualizzato
Antonello Andrea
grazie 

 ha scritto nel messaggio 
news:48d6846c$0$1082$4faf...@reader2.news.tin.it...

Allora c'è qualcosa che non va nei dati....
Susami ma se è ripetente vuol dire che sarà presente nell'elenco due volte 
con ugual numero di classe giusto?
Ossia supponiamo che io sia ripetente la 2 allora nei dati sarò presente 
come
Roberto     2D                2006/07        No
Roberto     2C                2007/08        Sì
Giusto? In quanto la 2D era la prima volta che la facevo.
Antonello Andrea dovrebbe avere entrambi No se non è mai stato ripetente.
In questo modo non dovresti raggruppare nulla ma semplicemente raccogliere 
tutti i ripenti Si


La tua obiezione è giusta. Quello che non sai tu è che
Fanciullo            Vito            2C                2006/07        Sì
Fanciullo            Vito            2D                2007/08        Sì
è ripetente in 2C perchè nell'anno 2005/06 è stato bocciato in seconda. 
quindi ripete
nel 2006/07 per la prima volta la seconda
. Poi viene bocciato ancora nel 2006/07 e nel 2007/08 ripete per la seconda 
volta
la classe seconda. E' un pluriripetente, diciamo noi, in seconda.
quindi nel tuo esempio di roberto il problema non si pone perché
Roberto     2D                2006/07        No
 Roberto     2C                2007/08        Sì
ripete la seconda solo nell'anno 2007/08.
.
Quindi se al tuo esempio ci metto il mio:
Roberto     2D                2006/07        No
 Roberto     2C                2007/08        Sì
Fanciullo            Vito            2C                2006/07        Sì
Fanciullo            Vito            2D                2007/08        Sì
quando io filtro sui  ripetenti  ho:
 Roberto     2C                2007/08        Sì
Fanciullo            Vito            2C                2006/07        Sì
Fanciullo            Vito            2D                2007/08        Sì
ma roberto è ripetente una sola volta.
Non so se sono stato chiaro.
ciao grazie 

 ha scritto nel messaggio 
news:48d7bf63$0$1075$4faf...@reader2.news.tin.it...

Ok forse ora ho capito, vuoi vedere chi ha ripetuto ad es. la seconda più di 
una volta giusto, tralasciando quelli che l'hanno ripetuta anche solo una 
volta.
prova ad adattare questo codice
_tbl = nome tabella
a = nome alunno
b = classe
c = ripetente
SELECT [_tbl].a, Left([b],1) AS classe, [_tbl].c, Count([_tbl].Id) AS 
ripetizioni
FROM _tbl
GROUP BY [_tbl].a, Left([b],1), [_tbl].c
HAVING ((([_tbl].c)=True) AND ((Count([_tbl].Id))>1));


qualcosa sono riuscito a combinare, grazie al tuo esempio.
Ti allego la stringa SQL
SELECT RIPETENTI.idalunno, RIPETENTI.Cognome, Left([NOMECLASSE],1) AS 
classe, RIPETENTI.ripetente, Count(RIPETENTI.idalunno) AS ripetizione
FROM RIPETENTI
GROUP BY RIPETENTI.idalunno, RIPETENTI.Cognome, Left([NOMECLASSE],1), 
RIPETENTI.ripetente
HAVING (((Count([IDALUNNO]))>1) and ripetenti.ripetente = True);
leggermente diversa nella parte HAVING ma il risultato lo ottengo, te lo 
strascrivo:
idalunno        cognome            classe    ripetente    ripetizione
8434            Fanciullo            2            -1              2
E' un successo per me anche sei io vorrei visualizzare i due record di 
Fanciullo
Fanciullo            Vito            2C                2006/07        Sì
Fanciullo            Vito            2D                2007/08        Sì
 e non il raggruppamente perché così non vedo in che seconda era e in che 
anno erano ripetizioni.
Credi che si possa fare qualcosa?
grazie