ho un problema in una query di somma...
ad esempio:
se sommo le entrate di gennaio, e non ci sono entrate in gennaio, deve dare come risultato 0,00€ non NULL
infatti mi da valore null o vuoto....
ho un problema in una query di somma...
ad esempio:
se sommo le entrate di gennaio, e non ci sono entrate in gennaio, deve dare come risultato 0,00€ non NULL
infatti mi da valore null o vuoto....
esiste una funzione nvl(valorefisso, valorecalcolateo) che restituisce o il valorecalcolato o, se questo è nullo, il valore fisso.
Ad esempio select nvl(1,campo1) from tabella resituisce 1 se il campo1 è nullo.
Forse può esserti utile.
n.b. Mi pare che sia solo su Oracle, non SQL standard.
un qualcosa per access??
Hai specificato nella tabella che si tratta di un tipo dato Valuta - Euro?Originariamente inviato da boby
un qualcosa per access??
Inoltre puoi dire al campo della tabella che come valore predefinito deve essere 0(zero). In questo modo non ti restituisce NULL ma 0,00.
Se tutto questo lo hai già fatto, spiegami la struttura del db e vediamo di trovare una soluzione![]()
05.08.2005 - by alka
Auguri all'angelo custode dei moderatori.
ho trovato con la funzione NZ
questa funzione da zero in caso in cui il valore sia null
es
L'espressione 2 + varX ad esempio restituisce sempre un valore Null quando la Variante varX è Null. 2 + Nz(varX) restituisce tuttavia 2.
grazie a tutti per l'aiuto
avevo già messo il valore predefinito, e qualche problema l'ho risolto, ma mettiamo il caso che:
hai una tabella delle vendite, devi fare la somma di tutte le vendite che hai fatto a gennaio, ma gennaio non hai inserito niente, come fa a risultare zero?
es:
TABELLA
mese importo
febbraio 100
febbraio 50
marzo 50
QUERY
selct mese, sum(importo) as importo
from vendite
group by mese;
RISULTATO ///gennaio non esce....
febbraio 150
marzo 50
![]()
![]()
E' OVVIO che non ti dia GENNAIO: non esiste alcun record nella tua tabella che contenga il valore GENNAIO. Questo è un problema di semantica: la differenza nei DBMS è sempre intesa come DIFFERENZA INSIEMISTICA: si possono estrarre degli elementi da un insieme e, facendo la differenza fra l'insieme "universo" e l'insieme estratto si ottengono gli elementi che non appartengono all'insieme.
Il COMPLEMENTO NON E' AMMESSO: questo significa che il DB non può inventarsi un record contenente il mese di GENNAIO se esso non è FISICAMENTE presente nella base di dati.
Se vuoi vedere anche il mese di GENNAIO con importo 0, DEVI immettere un record contenente GENNAIO e importo 0 oppure NULL.
Ciao.
"Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza
vuoi dire che tu hai nel database solo ed esclusivamente i nomi dei mesi in cui hai pagato qualcosa; se non paghi niente non hai nemmeno il nome. ho capito bene?
05.08.2005 - by alka
Auguri all'angelo custode dei moderatori.
cavoli quanti paroloni tutti insieme...Originariamente inviato da LeleFT
E' OVVIO che non ti dia GENNAIO: non esiste alcun record nella tua tabella che contenga il valore GENNAIO. Questo è un problema di semantica: la differenza nei DBMS è sempre intesa come DIFFERENZA INSIEMISTICA: si possono estrarre degli elementi da un insieme e, facendo la differenza fra l'insieme "universo" e l'insieme estratto si ottengono gli elementi che non appartengono all'insieme.
Il COMPLEMENTO NON E' AMMESSO: questo significa che il DB non può inventarsi un record contenente il mese di GENNAIO se esso non è FISICAMENTE presente nella base di dati.
Se vuoi vedere anche il mese di GENNAIO con importo 0, DEVI immettere un record contenente GENNAIO e importo 0 oppure NULL.
Ciao.
io credo che piuttosto che inserire un record "vuoto" sia più logico creare una tabella di Mesi, nella quale inserire i nomi dei dodici mesi nell'ordine e legarli alla tabella degli importi tramite l'ID del mese...
in questo modo eviti anche la RIDONDANZA dei dati e la tabella puoi poi usarla anche per altre cose se necessario.
05.08.2005 - by alka
Auguri all'angelo custode dei moderatori.
si, è chiaro.
se vendo qualcosa compilo la tabella con quano l'ho venduta e quanto, ma se non ho niente, vorrei che mi metta in automatico 0
non è proprio possibile