Newsgroup: it.comp.appl.access
Titolo: Probl. con conteggio query e campi in OR

ciao a tutti
non capisco...
ho una tabella con: ID e 4 campi si/no
vorrei contare i record che hanno almeno uno dei campi valorizzati con "No"
Creo la query con ID e i 4 campi e metto nel primo campo il criterio "like
no", i successivi Like no li metto in oppure.
se a questo punto eseguo la query mi restituisce i record che hanno almeno
1 campo valorizzato come "no" ed č corretto
Se invece aggiungo la funzione "conteggio" sul campo ID
non mi dice il numero dei campi ma mi fa vedere i conteggi delle possibili
combinazioni si/no
Dove sbaglio?
grazie ciao
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 --
Fai l'AND dei 4 Campi invece che l'OR...!
Siccome son campi Boolean, se li metti in AND otterrai True solo se
Tutti sono a True, quindi se è False significa che almeno uno è False.
@Alex

 @Alex
Ciao...
ho provato però se metto in AND il criterio False... "conteggio" mi conta
i record che hanno tutti e 4 i valori come False...
Se lo metto con True mi conta tutti i record che hanno i 4 valori come
True... 
forse dovrei dirgli contami i record che NON hanno tutti i valori su TRUE?
ti scrivo il codice... magari mi sono spiegato male (questo è il caso con
False in AND):
SELECT Count([T1].ID_dipendente) AS ConteggioDiIDT1, [001 T
dipendente].check_0, [001 T dipendente].check_1, [T1].check_2,
[T1].check_3, [T1].check_4
FROM [T1]
GROUP BY [T1].check_0, [T1].check_1, [T1].check_2, [T1].check_3,
[T1].check_4
HAVING ((([T1].check_0)=False) AND (([T1].check_1)=False) AND
(([T1].check_2)=False) AND (([T1].check_3)=False) AND
(([T1].check_4)=False));
Grazie buon appetito


 con "No"
Questo sarebbe:
SELECT Count(ID_dipendente) AS ConteggioDiIDT1
FROM T1
WHERE
           check_0=False
    OR check_1=False
    OR check_2=False
    OR check_3=False
    OR check_4=False
-- 
Ciao
Karl
*********
Access FAQ:  
http://www.donkarl.com/it

 Access FAQ:  
http://www.donkarl.com/it
Essendo i campi Check di tipo Boolean(e solo per questo) credo possa
essere equivalente a questo:
SELECT Count(ID_dipendente) AS ConteggioDiIDT1
 FROM T1
 WHERE
            (check_0 AND check_1 AND check_2 AND check_3 AND
check_4)=False
@Alex

 @Alex
Nel frattempo io ho trovato un'altra soluzione anche se forse un po'
ridicola.
ho creato una query con i criteri No in OR (Che comunque mi serviva) e una
che mi conta i record filtrati dalla precedente. 
quando ho un attimo provo con i vostri sql e mi scuso per aver postato
male il codice (non ho modificato correttamente tutti inomi dei campi...)
buon pomeriggio


"@Alex"  ha scritto nel messaggio 
news:e165f649-89c0-41cb...@dn9g2000vbb.googlegroups.com...



@Alex
________________Risposta:
SELECT Count(ID_dipendente) AS ConteggioDiIDT1
FROM T1
WHERE
            (check_0 + check_1 + check_2 + check_3 + check_4=0)
MA

 "@Alex"  ha scritto nel messaggionews:e165f649-89c0-41cb...@dn9g2000vbb.googlegroups.com...

Chiedeva almeno uno FALSE quindi >-4 ma concettualmente concordo che
va benissimo.
@Alex

 @Alex
Ho avuto solo tempo di provare il primo codice indicato da MA.
Funziona!
ora visto che siete grandiosi vi chiedo ancora un aiuto:
ho collegato la query di cui sopra in una casella di riepilogo(che chiamo
A)... in questo modo vedo il famoso valore.
ho poi un box testo che ha una formattazione condizionale con
L'espressione è [A]>0   e ho selezionato uno sfondo rosso.
Così quando ci sono dei record che hanno almeno 1 valore non flaggato il
box diventa rosso. o meglio... diventa rosso se:
seleziono il valore presente nella casella di riepilogo e poi clicco sul
box di testo (e la condizione è soddisfatta ovviamente)...
mi chiedo se posso far comparire il risultato della query in un box di
testo (che si aggiornerebbe senza dover selezionare e cliccare)
grazie ancora


flaggin ha scritto:
Trovato!
ho usato la una query che mi elenca i record che non hanno tutti i campi
con il valore false e ho messo nel box:
=DCount("*";"nome_query")
e ora... buona serata
ciao


 ma concettualmente concordo che va benissimo.
Con campi booleani si puo sempre usare diversi versioni
con operatori logici o aritmetici. Sarebbe interessante
di paragonare la prestazione con 1 millione di record.
Ho usato la versione esplicita anche perché l'editore
puo visualizzarla in un modo che si spiega da solo.
