Newsgroup: it.comp.appl.access
Titolo: Query complicata (per me)

Ciao a tutti, ho una tabella che si chiama "VotiTrimestre_1" in questa 
tabella ci sono 20 campi corrispondenti alle varie materie scolastiche e al 
cognome e nome dell'alunno, per ogni materia ho inserito i voti del primo 
trimestre di ogni alunno.
Dovrei creare una query che mi conteggi quanti alunni hanno avuto 
l'insufficienza (<6) per ogni materia.
Grazie 

"Francesca" <asda> ha scritto nel messaggio 
news:4b7928c0$0$1122$4faf...@reader2.news.tin.it...

Ciao Francesca,
non sono sicura di aver capito ma tu vuoi sapere quanti alunni sono 
insufficienti in tutte le materie?
Se si la query dovrebbe essere una cosa del tipo:
SELECT COUNT(*) FROM  VotiTrimestre_1
WHERE
(Materia1<6 ) AND (Materia2<6 ) AND (Materia3<6 )... AND 
(Materia20<6 )
ovviamente sostituisci Materia1, Materia2 ecc. con i nomi dei campi 
che contengono le materie
-- 
Cinzia [Office Access MVP]
_______________________
 
www.riolab.org
http://accessdaziacin.spaces.live.com
----------------------------------------> 

Grazie Cinzia per aver risposto,
si hai capito bene il quesito,
ho fatto cos� come tu hai detto:
SELECT Count(*) AS Conta
FROM VotiTrimestre_1_LS
WHERE (((VotiTrimestre_1_LS.Storia)<6) AND 
((VotiTrimestre_1_LS.Geografia)<6) AND ((VotiTrimestre_1_LS.Religione)<6) 
AND ((VotiTrimestre_1_LS.Fisica)<6));
il risultato � che mi da un errore:
"Impossibile eseguire una query che non include l'espressione "Storia" 
specificata come parte di una funzione aggregazione". 

Francesca ha scritto:

Prova cos�:
SELECT Count(*) AS Conta
FROM VotiTrimestre_1_LS
WHERE (((VotiTrimestre_1_LS.Storia)<6)) OR
(((VotiTrimestre_1_LS.Geografia)<6)) OR
(((VotiTrimestre_1_LS.Religione6))....eccetera
--
sv
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 "Storia" specificata come parte di una funzione aggregazione".
Ciao Francesca,
non so se � un problema di copia e incolla ma nel tuo esempio mancava 
una parentesi in fondo.
prova cos�:
SELECT Count(*) AS ConteggioDiStudenti
FROM VotiTrimestre_1_LS
WHERE (((VotiTrimestre_1_LS.Storia)<6) AND
((VotiTrimestre_1_LS.Geografia)<6) AND 
((VotiTrimestre_1_LS.Religione)<6)
 AND ((VotiTrimestre_1_LS.Fisica)<6)));


 ha scritto nel 
messaggio news:hlbrli$7qq$1...@news.eternal-september.org...

si probabilmente un problema di copia/incolla,
cmq non funzione perch� mi visualizza un solo campo (ConteggioDiStudenti)con 
risultato 316 che � il totale dei record inseriti,
se seleziono le materie mi ritorna l'errore di cui prima. 

 se seleziono le materie mi ritorna l'errore di cui prima.
Ciao Francesca,
strano... prova a farla con il query designer, aggiungi la tabella 
VotiTrimestre_1_LS, trascini il campo chiave primaria (presumo ID) 
nella griglia sottostante, fai click sull'icona di SommaToria nella 
barra degli strumenti, nella riga formula selezioni Conteggio, poi 
trascini nella griglia il campo storia nella riga formula selezioni 
Dove e nella riga criteri metti < 6, prova a d eseguire, se funziona 
prova ad aggiungere un altra materia nello stesso modo... fino a che 
non hai aggiunto tutte le materie...
Fai sapere!
Saluti



Mi pare di capire che Francesca voleva diversi totali, quindi non credo che 
questa cosa la si possa ottenere con un unico conteggio. Forse la soluzione 
potrebbe essere l'uso di sottoquery, ognuna delle quali con un suo 
sottoconteggio, successivamente assemblate in un un'unica query che 
riepiloga tutto. Qualcosa del genere:
SELECT TOP 1,
(SELECT Count([Geografia]) FROM [VotiTrimestre_1_LS] WHERE [Geografia]<6) AS 
InsufficientiGeografia,
(SELECT Count([Religione]) FROM [VotiTrimestre_1_LS] WHERE [Religione]<6) AS 
InsufficientiReligione,
(SELECT Count([Storia]) FROM [VotiTrimestre_1_LS] WHERE [Storia]<6) AS 
InsufficientiStoria
FROM [VotiTrimestre_1_LS];
Ciao
Antonio


Ciao Antonio,
io avevo capito che volesse sapere quanti fossero insufficienti in 
tutte le materie (insomma quanti erano i "somari senza speranza" :-) 
ma forse hai ragione tu,   ci dir� Francesca, se vorr�!