Newsgroup: it.comp.appl.access
Titolo: query: criterio di selezione

Un saluto a tutti.
Non riesco a risolvere un problema (forse mi sto perdendo in un bicchiere
d'acqua) ma dopo tanti tentativi ho gettato la spugna.
Situazione:
sogg.    docum.    datsca        datchi
A          10            31/12        10/01
B          12            30/11        12/12
C           14            31/12        10/01
C            14            31/01
D            9            31/10        10/11
Dovrei estrarre i record dove i soggetti/docum. il campo datchi non sia
null.
Dall'esempio suddetto dovrei estrarre: A 10; B12; D 9.
Non dovrei estrarre C 14 in quanto in un record il campo datchi ha un valore
null.
Ringrazio in anticipo chiunque vorra' aiutarmi.
Gabriele

 ha scritto nel messaggio
news:a4p4m6$7ep$1...@pegasus.tiscalinet.it...

una possibile soluzione .....
ho creato una query (qNomeCheVuoiTu) e do per scontato che la tabella da cui
estrai i dati si chiami
provaPerNewsgroup
incolla questo codice nella zona SQL della query in visualizzazione
struttura
SELECT provaPerNewsgroup.sogg, provaPerNewsgroup.docum,
provaPerNewsgroup.datsca, provaPerNewsgroup.datchi
FROM provaPerNewsgroup
WHERE ((Not (provaPerNewsgroup.datchi) Is Null));
se ti guardi come Access la trasforma in STRUTTURA capirai che sarà molto
semplice da ripetere in altri casi simili.
van

Gabriele Romagnoli ha scritto:

select *
from nome tabella
where(   (not (isnull(sogg))  and  (not (isnull(docum))   and     (not
(isnull(datchi))  )
tutti e tre i campi non devono avere valori null
datsca da come dici invece per tale campo ti va bene anche il null
se panche questo basta aggiungere con un and

 WHERE ((Not (provaPerNewsgroup.datchi) Is Null));
Ciao Ivan ...
Così però mi pare che non escluda il famoso record C14 che ho l'impressione
che Gabriele non voglia includere nei dati risultanti. Forse ho capito male
ma quello che intende fare è escludere tutti i dati di C perchè è presente
il valore Null anche su uno solo dei suoi elementi. Se così fosse non basta
una Query soltanto ....
Salvo quindi miei limiti di comprensione, potrebbe organizzarsi con due
query distinte ...
- Creare una Query1 di selezione che estragga "sogg" e i valori Null di
"datchi".
- Creare una Query2 che estragga i dati dalla tabella originale messa in
LEFTJOIN sui campi "sogg" con la Query1 che ha creato prima. Su questa
stessa Query2 dovrebbe aggiungere il campo "sogg" della Query1
(rinominandolo, senno' s'incazza). Sotto il nuovo campo, sui criteri, mette
Is Null.
Escludendo così i "sogg" che hanno corrispondenze sulla Query1 dovrebbe
ottenere il risultato che cerca ...
OndaMax

 ha scritto nel messaggio
news:a4p4m6$7ep$1...@pegasus.tiscalinet.it...

Separando il problema in due (Divide et Impera !!!)
abbiamo da un lato la necessità di vedere se esiste uno o più record
con DatChi null cioè:
         SELECT Sogg FROM Tabella WHERE DatChi is null;
Quindi riestrarre da Tabella tutti quei record che non abbiano
il campo Sogg con valore appartenente all'insieme precedente
e quindi:
         SELECT *
         FROM Tabella
         WHERE Sogg NOT IN ( SELECT Sogg
                                                 FROM  Tabella
                                                 WHERE DatChi is null; )
l'output che si ottiene è:
Sogg Docum         DatSca     DatChi
A         10             31/12             10/01
B         12             30/11             12/12
D         9               31/10             10/11
Dovrebbe essere quello che ti serve... (sempre ch'io abbia capito bene la
tua domanda)
Ciao.
Dario