Newsgroup: it.comp.appl.access
Titolo: Funzione di Somma

Salve
avrei un "piccolo" problema da risolvere.
All'interno di un database faccio una query in cui seleziono dei record e ne
sommo i valori di una colonna.
Può capitare che il risultato di quella query non contenga record e di
conseguenza il risultato della funzione Somma restituisca il valore Null.
A me però interesserebbe che se non ci fossero valori restituisse 0 e non
Null.
Mi sapete dare una mano? Grazie.
Marco D'Onofrio


Prova
Somma(nz([nomecampo];0))
Ciao Nicola


Grazie Nicola ma non funziona.
Un indizio che magari puņ aiutare č il fatto che restituendo Null non viene
creato il record.
A me servirebbe la creazione di questo record con valore 0 nel caso non
venga trovato nessun record
Marco

venga trovato nessun record
la query come la fai, scrivendo in sql o componendola con l'editor
delle query di access, il qbe?
--
make it idiot proof and someone will make a better idiot.
--
il sito comune di it.comp.appl.access:
http://members.xoom.it/it_db_access/

 delle query di access, il qbe?
Premetto che sono un profano di access e se come qbe intendi l'editor
"grafico" dove si inseriscono le tabelle su cui si vuole effettuare e poi si
inseriscono condizioni, campi ect ect... si utilizzo quello.
Inserisco nella riga Campo quello che mi ha scritto Nicola
Visualizzando il comando in SQL al posto del comando Somma c'è Sum e se
provo ad inserire Somma mi dice errore di sintassi.
Boh

inseriscono condizioni, campi ect ect... si utilizzo quello.
allora per il momento prova cosi', che magari si fa prima: apri una
nuova query, non caricare nessuna tabella, menu visualizzazione,
visualizza sql.
dovresti vedere una specie di casellone bianco.
scrivi in questo casellone:
SELECT SUM(nz(NomeCampo, 0)) FROM NomeTabella
ovviamente sostituendo a NomeCampo e NomeTabella i relativi nomi.
poi di nuovo menu visualizzazione e visualizza struttura.
se e' andato tutto bene dovresti vedere nella casella del qbe
l'espressione che dovresti scrivere.
praticamente un reverse engineering delle query... :-)



Ammettiamo che debba, per una tabella chiamata Tabella2, ottenere il totale
del campo Importo di quei record il cui campo Codice è uguale a 5, e voglio
che il totale sia zero e non Null nel caso che non esistano record che
soddisfino tale condizione, farei una query il cui codice SQL è il seguente:
SELECT Sum(IIf([codice]=5,[importo],0)) AS a
FROM Tabella2;
Roberto


Ho provato ma il risultato della query mi restituisce una tabella vuota
senza niente.
L'indicatore lampeggia nella casella ma non c'è nessuno zero. :-((
Marco


ho provato la tua soluzione ma mi restituisce una tabella vuota senza
neanche un record.
Grazie Marco

 ha scritto nel messaggio
news:8m4193$igk$2...@pegasus.tiscalinet.it...

Significa che non hai alcun record che nel campo Codice ha il valore 5;
forse ti è sfuggito che la selezione dei record da sommare viene fatta con
la IIF, e che nel mio esempio confronta il codice con 5;  devi naturalmente
personalizzare il confronto della IIF così come ti serve.
Se poi la query deve essere parametrica, al posto del valore 5 indica il
nome di un controllo di una maschera dove digiti il valore di selezione,
cioè:
SELECT Sum(IIf([Codice] = [Forms]![NomeMaschera]![NomeControllo]
,[Importo],0)) AS a
FROM Tabella2;
Comunque io ho provato e funziona.
Roberto


Si hai ragione non ho nessun record.
Forse non mi ero spiegato bene all'inizio del thread.
A me interessa che, in caso di mancanza di record, mi restituisca un record
contenente 0 invece che nessun record.
Marco

 ha scritto nel messaggio
news:8m5smk$5ji$1...@pegasus.tiscalinet.it...

Ti confermo che ho provato, e, se nessun record soddisfa le condizioni, la
query mi restituisce un record con valore 0 (zero).
Roberto


Faccio pubblica ammenda.
FUNZIONA!!!!!
Grazie a tutti
Marco

L'indicatore lampeggia nella casella ma non c'è nessuno zero. :-((
ok, allora fai una cosa: costruisci la query come se niente fosse,
cioe' senza preoccuparti degli eventuali valori Null, poi passa nella
visualizzazione sql, copia il testo e postalo che vediamo
