Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 23

Discussione: valore NULL

  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    17

    valore NULL

    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....

  2. #2
    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.

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    17
    un qualcosa per access??

  4. #4
    Originariamente inviato da boby
    un qualcosa per access??
    Hai specificato nella tabella che si tratta di un tipo dato Valuta - Euro?
    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.

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    17
    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

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    17

    per lady blu

    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

  7. #7
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    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

  8. #8
    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.

  9. #9
    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.
    cavoli quanti paroloni tutti insieme...

    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.

  10. #10
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    17
    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

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.