Newsgroup: it.comp.appl.access
Titolo: Query - "Is Not Null" su più colonne

Sto costruendo un DB gestionale  denominato "autoparco".
Tra i problemi da risolvere ho quello di creare una query che mi evidenzi
per ogni autovettura le varie scadenze: Tassa di proprietą, Assicurazione,
Bollino blu e Revisione
Per far ciņ ho creato n.4 query ed ogn'una di essa mi calcola da data di
scadenza.
Poi, per avere il quadro d'insieme delle scadenze, ho deciso di crearne una
che me le ragruppasse:
Targa (Prelevata dall'elenco autovetture)
Tassa di proprietą: Data scadenza
Assicurazione: Data scadenza
Bollino blu: Data scadenza
Revisione: Data scadenza
Dove sta il mio problema?
In questa querry vorrei che fossero non visualizzati i record con tutte e
quattro i "Data scadenza" con valore nullo.
grazie a tutti,
ciao Gianfranco


wrote:

WHERE ([Tassa di Proprietą] IS NOT NULL) AND ([Assicurazione] IS NOT
NULL) AND ([Bollino blu] IS NOT NULL) AND ([Revisione] IS NOT NULL)
Ciao. Fabrizio.
(Access XP (sp2), Win ME, P4 1Ghz, 320 RAM)

 ha scritto nel messaggio
news:nWGE9.76985$Yw.36...@news2.tin.it...

Senza grande riflessione, quindi magari non č la soluzione ottimale:
campo calcolato
nz(data1;"") & nz(data2;"") & nz(data3;"") & nz(data4;"")
Poi sotto questo campo nel criterio ci scrivi <> ""
Antonio


Ho eseguito come hai consigliato e precisamente:
Espr1: nz([Assicurazione];"") & nz([Tassa Proprietą];"") &
nz([Revisione];"") & nz([Bollino Blu];"")
Poi sotto questo Espr1 nel criterio ho scritto: <> ""
A questo punto mi chiede "immissione valore parametro" e per tutti e
quattro:
Risultato - nulla
Dove sbaglio?

 ha scritto nel messaggio
news:d7ME9.58009$744.2...@news1.tin.it...

In corrispondenza di tutti e quattro i campi? Ma sono i nomi dei campi
restituiti dalle altre query quei nomi che hai inserito?
Antonio


Ho fatto quanto da te consigliato ma
mi chiede "immissione valore parametro" e per tutti e quattro:
Risultato - nulla, non risulta nessun record
Dove sbaglio?


wrote:

Stessa domanda che ti ha fatto Antonio: ma come si chiamano
esattamente i campi della query ?
Io ho scritto :Tassa Proprietą  , ma non so esattamente nč come si
chiama nč la tabella/query di provenienza: come per 'Tassa Proprietą'
, il discorso vale per tutti gli altri.
Aggiusta i giusti riferimenti ai campi.
Se non vogliamo girarci le ore , posta lo script SQL , che gli diamo
un occhio.


 ha scritto nel messaggio
news:qkME9.24628$3l.6...@twister1.libero.it...

Si, sono il ragruppamento  di una tabella, dove prelevo tutte le targhe
delle autovetture e di 4 query dove calcolo la data di scadenza:
Automezzi scadenze Assicurazioni
Automezzi scadenze Bollino Blu
Automezzi scadenze Revisione
Automezzi scadenze Tassa di Proprietą
da dove assumo solo le rispettive "D Scadenza" (data scadenza)
Tutte le "D Scadenza" le ho denominate:
Assicurazione: D Scadenza
Bollino blu: Data scadenza
Revisione: Data scadenza
Tassa Proprietą: Data scadenza
SQL:
SELECT [01 Automezzi].Targa, [Automezzi scadenze Assicurazioni].[D Scadenza]
AS Assicurazione, [Automezzi in corso Tassa di Proprietą].[D Scadenza] AS
[Tassa Proprietą], [Automezzi scadenze Revisione].[D Scadenza] AS Revisione,
[Automezzi scadenze Bollino Blu].[D Scadenza] AS [Bollino Blu]
FROM [Automezzi scadenze Revisione] RIGHT JOIN ([Automezzi in corso Tassa di
Proprietą] RIGHT JOIN ([Automezzi scadenze Assicurazioni] RIGHT JOIN
([Automezzi scadenze Bollino Blu] RIGHT JOIN [01 Automezzi] ON [Automezzi
scadenze Bollino Blu].ID01Automezzi = [01 Automezzi].ID) ON [Automezzi
scadenze Assicurazioni].ID01Automezzi = [01 Automezzi].ID) ON [Automezzi in
corso Tassa di Proprietą].ID01Automezzi = [01 Automezzi].ID) ON [Automezzi
scadenze Revisione].ID01Automezzi = [01 Automezzi].ID
GROUP BY [01 Automezzi].Targa, [Automezzi scadenze Assicurazioni].[D
Scadenza], [Automezzi in corso Tassa di Proprietą].[D Scadenza], [Automezzi
scadenze Revisione].[D Scadenza], [Automezzi scadenze Bollino Blu].[D
Scadenza];
Ciao

"oizirbaF" <fabrizio...@SPAMtiscalinet.it> ha scritto nel messaggio
news:st47uukbkehftg1c4...@4ax.com...

Fabrizio, ho appena postato lo SQL ad Antonio
e qui ripeto:
SELECT [01 Automezzi].[Targa], [Automezzi scadenze Assicurazioni].[D
Scadenza] AS Assicurazione, [Automezzi in corso Tassa di Proprietą].[D
Scadenza] AS [Tassa Proprietą], [Automezzi scadenze Revisione].[D Scadenza]
AS Revisione, [Automezzi scadenze Bollino Blu].[D Scadenza] AS [Bollino Blu]
FROM [Automezzi scadenze Revisione] RIGHT JOIN ([Automezzi in corso Tassa di
Proprietą] RIGHT JOIN ([Automezzi scadenze Assicurazioni] RIGHT JOIN
([Automezzi scadenze Bollino Blu] RIGHT JOIN [01 Automezzi] ON [Automezzi
scadenze Bollino Blu].[ID01Automezzi]=[01 Automezzi].[ID]) ON [Automezzi
scadenze Assicurazioni].[ID01Automezzi]=[01 Automezzi].[ID]) ON [Automezzi
in corso Tassa di Proprietą].[ID01Automezzi]=[01 Automezzi].[ID]) ON
[Automezzi scadenze Revisione].[ID01Automezzi]=[01 Automezzi].[ID]
GROUP BY [01 Automezzi].[Targa], [Automezzi scadenze Assicurazioni].[D
Scadenza], [Automezzi in corso Tassa di Proprietą].[D Scadenza], [Automezzi
scadenze Revisione].[D Scadenza], [Automezzi scadenze Bollino Blu].[D
Scadenza];
Ringrazio ambedue


wrote:

Prova ad aggiungere :
HAVING ([Automezzi scadenze Assicurazioni].[D Scadenza] IS NOT NULL)
AND ( [Automezzi in corso Tassa di Proprietą].[D Scadenza] IS NOT
NULL) AND ( [Automezzi scadenze Revisione].[D Scadenza] IS NOT NULL)
AND ([Automezzi scadenze Bollino Blu].[D Scadenza] IS NOT NULL)
e che dio ce la mandi buona  e bruna , possibilmente!! ;-)
p.s. Semplificando Having fa le veci di Where nelle query di
raggrupamento.


Ti rispondo nell'altro ramo : dimmi se funzia.


Mi scuso ma sono costretto a sospendere: sono in ufficio e mi stanno
cacciando via.
Grazie per ora, riprenderņ domattina.
Ciao, Gianfranco

 Tassa Proprietā: Data scadenza
Nelle Nz scrivi [nometabella]![Data scadenza] invece che la label di campo
calcolato
Antonio

[CUT]
Come da te consigliato ho immesso il codice sql HAVING:
SELECT [01 Automezzi].Targa, [Automezzi scadenze Assicurazioni].[D Scadenza]
AS Assicurazione, [Automezzi scadenze Revisione].[D Scadenza] AS Revisione,
[Automezzi scadenze Bollino Blu].[D Scadenza] AS [Bollino Blu], [Automezzi
scadenze Tassa di Proprietà].[D Scadenza] AS [Tassa Proprietà]
FROM [Automezzi scadenze Tassa di Proprietà] RIGHT JOIN ([Automezzi scadenze
Revisione] RIGHT JOIN ([Automezzi scadenze Assicurazioni] RIGHT JOIN
([Automezzi scadenze Bollino Blu] RIGHT JOIN [01 Automezzi] ON [Automezzi
scadenze Bollino Blu].ID01Automezzi = [01 Automezzi].ID) ON [Automezzi
scadenze Assicurazioni].ID01Automezzi = [01 Automezzi].ID) ON [Automezzi
scadenze Revisione].ID01Automezzi = [01 Automezzi].ID) ON [Automezzi
scadenze Tassa di Proprietà].ID01Automezzi = [01 Automezzi].ID
HAVING ([Automezzi scadenze Assicurazioni].[D Scadenza] IS NOT NULL) AND (
[Automezzi scadenza Tassa di Proprietà].[D Scadenza] IS NOT NULL) AND (
[Automezzi scadenze Revisione].[D Scadenza] IS NOT NULL) AND ([Automezzi
scadenze Bollino Blu].[D Scadenza] IS NOT NULL)
GROUP BY [01 Automezzi].Targa, [Automezzi scadenze Assicurazioni].[D
Scadenza], [Automezzi scadenze Revisione].[D Scadenza], [Automezzi scadenze
Bollino Blu].[D Scadenza], [Automezzi scadenze Tassa di Proprietà].[D
Scadenza];
Mi dice "errore di sintassi nella proposizione HAVING"
Ho provato anche con la condizione IIF:
Espr1: IIf(([Assicurazione] Is Not Null) Or ([Tassa Proprietà] Is Not Null)
Or ([Revisione] Is Not Null) Or ([Bollino Blu] Is Not Null);1;10)
(ho utilizzato Or perchè a me serve che vengano visualizzati tutti i record
con almeno un valore
presente)
immetto quale criterio =1
e mi chiede immancabilmente "Immissione valore parametro" per le quattro
colonne interessate.
Voi avete fatto il possibile per aiutarmi, e per questo vi ringrazio, ed io
ho perso "quasi" le speranze.
Vado ad indagare sulle query precedenti, nel caso ci fosse qualche magagna.
Grazie ancora
ciao, Gianfranco


Prima di rispondere a Fabrizio non avevo letto questo post
FUNZIONAAAAAA
Grazie, naturalmente a tutti e due per la pazienza e maestria dimostrata.
Ciao, Gianfranco

scadenze Bollino Blu].[D Scadenza] IS NOT NULL)
Anche se hai risolto , adesso per punizione provi anche questa query e
ti "impari" SQL per benino.


 (Access XP (sp2), Win ME, P4 1Ghz, 320 RAM)
Per punizione??? ......figurati!...sono ben felice di "impararmi" qualcosa e
devo dire con sincerità e senza sviolinate, grazie a Voi.
Veniamo al dunque:
Era la prima cosa che ho fatto e precisamente copiare il codice riferito ad
Having alla fine, ma avendo dato errore e precisamente "caratteri non
previsti dopo la fine dell'istruzione SQL" pensai che come al solito,
arrancando da bravo "Copia-Incollatore folle" (è l'esatta definizione che mi
si può dare), pensai di spostarlo in altre posizioni.
Questa è la SQL che per "impararmi" ho provato:
SELECT [01 Automezzi].Targa, [Automezzi scadenze Assicurazioni].[D
Scadenza], [Automezzi scadenze Revisione].[D Scadenza], [Automezzi scadenze
Bollino Blu].[D Scadenza], [Automezzi scadenze Tassa di Proprietà].[D
Scadenza]
FROM [Automezzi scadenze Tassa di Proprietà] RIGHT JOIN ([Automezzi scadenze
Revisione] RIGHT JOIN ([Automezzi scadenze Assicurazioni] RIGHT JOIN
([Automezzi scadenze Bollino Blu] RIGHT JOIN [01 Automezzi] ON [Automezzi
scadenze Bollino Blu].ID01Automezzi = [01 Automezzi].ID) ON [Automezzi
scadenze Assicurazioni].ID01Automezzi = [01 Automezzi].ID) ON [Automezzi
scadenze Revisione].ID01Automezzi = [01 Automezzi].ID) ON [Automezzi
scadenze Tassa di Proprietà].ID01Automezzi = [01 Automezzi].ID
GROUP BY [01 Automezzi].Targa, [Automezzi scadenze Assicurazioni].[D
Scadenza], [Automezzi scadenze Revisione].[D Scadenza], [Automezzi scadenze
Bollino Blu].[D Scadenza], [Automezzi scadenze Tassa di Proprietà].[D
Scadenza];
HAVING ([Automezzi scadenze Assicurazioni].[D Scadenza] IS NOT NULL) AND
([Automezzi scadenza Tassa di Proprietà].[D Scadenza] IS NOT NULL) AND
([Automezzi scadenze Revisione].[D Scadenza] IS NOT NULL) AND ([Automezzi
scadenze Bollino Blu].[D Scadenza] IS NOT NULL)
Errore: "caratteri non previsti dopo la fine dell'istruzione SQL" e dopo OK
mi evidenzia il comando HAVING.
ciao, Gianfranco
P.S. scusa se ti ho risposto solo ora.


Figurati , non è una guerra contro il tempo , mi immagino che lavori
pure te.


 (Access XP (sp2), Win ME, P4 1Ghz, 320 RAM)
FUNZIONAAA!!
Ho solo dovuto modificare la condizione AND con OR nel codice che segue per
avere il risultato desiderato ed è lo stesso ottenuto con i suggerimenti di
Antonio Biso ma con una colonna in meno.
HAVING ((([Automezzi scadenze Assicurazioni].[D Scadenza]) Is Not Null)) OR
((([Automezzi scadenze Revisione].[D Scadenza]) Is Not Null)) OR
((([Automezzi scadenze Bollino Blu].[D Scadenza]) Is Not Null)) OR
((([Automezzi scadenze Tassa di Proprietà].[D Scadenza]) Is Not Null));
Ciao e grazie, Gianfranco

((([Automezzi scadenze Tassa di Proprietà].[D Scadenza]) Is Not Null));
Grazie a te : ho imparato una cosa su 'IS NOT NULL'. :-)
