Newsgroup: it.comp.appl.access
Titolo: Nz in query a campi incrociati

TRANSFORM Sum(Nz(Q_Fattura.IVA, 0)) AS SommaDiIVA
SELECT Year([DataFattura]) AS AnnoFattura
FROM Q_Fattura
WHERE (((Q_Fattura.DataFattura) Between #1/1/2006# And #12/31/2006#))
GROUP BY Year([DataFattura])
PIVOT Format$(Q_Fattura.DataFattura,'mmmm') In
("Gennaio","Febbraio","Marzo","Aprile","Maggio","Giugno","Luglio","Agosto","Settembre","Ottobre","Novembre","Dicembre");
Salve,
la precedente query è una query a campi incrociati che mi consente di
sapere qual è il totale dell'IVA per ogni mese.
Nei mesi il cui campo ha valore Null, il campo rimane comunque vuoto,
nonostante io abbia inserito l'Nz nella prima riga. Non dovrebbe
comparire uno 0?
Grazie.

 ha scritto nel messaggio 
news:1151956699.3...@p79g2000cwp.googlegroups.com...
TRANSFORM Sum(Nz(Q_Fattura.IVA, 0)) AS SommaDiIVA
SELECT Year([DataFattura]) AS AnnoFattura
FROM Q_Fattura
WHERE (((Q_Fattura.DataFattura) Between #1/1/2006# And #12/31/2006#))
GROUP BY Year([DataFattura])
PIVOT Format$(Q_Fattura.DataFattura,'mmmm') In
("Gennaio","Febbraio","Marzo","Aprile","Maggio","Giugno","Luglio","Agosto","Settembre","Ottobre","Novembre","Dicembre");
Salve,
la precedente query č una query a campi incrociati che mi consente di
sapere qual č il totale dell'IVA per ogni mese.
Nei mesi il cui campo ha valore Null, il campo rimane comunque vuoto,
nonostante io abbia inserito l'Nz nella prima riga. Non dovrebbe
comparire uno 0?
Grazie.
Risolvi il problema alla sorgente della query, non ho testato il tutto ma mi 
č capitato  che alcune operazioni non sortiscano il loro effetto in una 
query a campi incrociati...ma chiedo anch'io conferma....
In ogni caso io agirei sulla Q_Fattura (che penso sia una query giusto??) e 
quindi nel campo IVA mettere
Nz([TuaFormula],0)
Ciao
Roberto 

 ha scritto nel messaggio
news:1151956699.3...@p79g2000cwp.googlegroups.com...



Ciao robb,
la funzione di aggregazione Sum() non rende mai il valore NULL a meno che la
tabella non sia completamente vuota.
Il problema è un altro, nei mesi in cui non esiste fatturato la query si
deve inventare un valore e questo valore è NULL che va bene sia per i campi
testo che per i numerici.
Se vuoi avere il controllo completo creati a mano la query a campi
incrociati, è più semplice.
----
Select
   SUM(Iif(Month(DataFattura)=1,IVA,0)) AS Gennaio,
   SUM(Iif(Month(DataFattura)=2,IVA,0)) AS Febbraio,
   SUM(Iif(Month(DataFattura)=3,IVA,0)) AS Marzo,
   SUM(Iif(Month(DataFattura)=4,IVA,0)) AS Aprile,
   SUM(Iif(Month(DataFattura)=5,IVA,0)) AS Maggio,
   SUM(Iif(Month(DataFattura)=6,IVA,0)) AS Giugno,
   SUM(Iif(Month(DataFattura)=7,IVA,0)) AS Luglio,
   SUM(Iif(Month(DataFattura)=8,IVA,0)) AS Agosto,
   SUM(Iif(Month(DataFattura)=9,IVA,0)) AS Settembre,
   SUM(Iif(Month(DataFattura)=10,IVA,0)) AS Ottobre,
   SUM(Iif(Month(DataFattura)=11,IVA,0)) AS Novembre,
   SUM(Iif(Month(DataFattura)=12,IVA,0)) AS Dicembre
From Q_Fattura
Where DataFattura Between #1/1/2006# And #12/31/2006#
----
Ciao
-- 
Giorgio Rancati
[Office Access MVP]

giorgio rancati wrote:
[CUT]

Mille grazie per le risposte. Ho utilizzato la soluzione proposta da
Giorgio, che è quella che ritengo si adatti meglio alle mie esigenze.
Ciao.
Robb