Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it L'avatar di Melly
    Registrato dal
    Mar 2003
    Messaggi
    222

    [SQL] Somma con campi null

    Buongiono

    il mio problema è che ho una select dove faccio la somma
    di alcuni campi.... purtroppo in questa operazione se
    almeno uno di essi è null la somma mi daà sempre null...


    data la mia dislessia posto il codice

    codice:
    SELECT distinct Inquilini.nome, Inquilini.cognome, 
        Inquilini.ragione_sociale, Inquilini.indirizzoDue, 
        Inquilini.n_civicoDue, Fatture.N_fattura, 
        Fatture.totale, (Fatture.canonelocazione +   
        Fatture.spese_accessorie + Fatture.spese_riscaldamento +
        Fatture.conguaglio_istat + Fatture.conguaglio_riscaldamento + 
        Fatture.conguaglio_accessori + Fatture.spese_acqua 
        + Fatture.spese_legali + Fatture.indennitaoccupazione 
        + Fatture.lavori) as Art10, 
        Fatture.spese_amministrative as Imponibile, 
        (Fatture.bollo + Fatture.interessi_mora + 
        Fatture.registrazione_contratto) as Art15,
        Fatture.data_fattura, 
        Fatture.ribaltata
    FROM Inquilini, Fatture 
    WHERE Fatture.id_inquilino = Inquilini.id_inquilino
     and Fatture.id_societa = 69
    order by N_fattura
    qualcuno ha capito?
    Aiutami a ritrovare l’interesse per le piccole cose che sono alla base di tutte le promesse del futuro che cresce, perché sono le sfumature a dare vita ai colori e a farci tornare in mente le cose più pure dei giorni migliori

  2. #2
    se sei su SQLServer
    inserisci il controllo ISNULL su ogni campo in modo da dare al valore il default 0 qualora sia NULL, così:
    codice:
    SELECT distinct Inquilini.nome, Inquilini.cognome, 
        Inquilini.ragione_sociale, Inquilini.indirizzoDue, 
        Inquilini.n_civicoDue, Fatture.N_fattura, 
        Fatture.totale, 
       (ISNULL(Fatture.canonelocazione,0) +   
        ISNULL(Fatture.spese_accessorie,0) + 
        ISNULL(Fatture.spese_riscaldamento,0) +
        ISNULL(Fatture.conguaglio_istat,0) + 
        ISNULL(Fatture.conguaglio_riscaldamento,0) + 
        ISNULL(Fatture.conguaglio_accessori,0) + 
        ISNULL(Fatture.spese_acqua,0) + 
        ISNULL(Fatture.spese_legali,0) + 
        ISNULL(Fatture.indennitaoccupazione,0) + 
        ISNULL(Fatture.lavori,0)) as Art10, 
        Fatture.spese_amministrative as Imponibile, 
       (ISNULL(Fatture.bollo,0) + 
        ISNULL(Fatture.interessi_mora,0) + 
        ISNULL(Fatture.registrazione_contratto,0)) as Art15,
        Fatture.data_fattura, 
        Fatture.ribaltata
    FROM Inquilini, Fatture 
    WHERE Fatture.id_inquilino = Inquilini.id_inquilino
     and Fatture.id_societa = 69
    order by N_fattura

    05.08.2005 - by alka
    Auguri all'angelo custode dei moderatori.

  3. #3
    Utente di HTML.it L'avatar di Melly
    Registrato dal
    Mar 2003
    Messaggi
    222


    era facile....


    Grazie mille
    Aiutami a ritrovare l’interesse per le piccole cose che sono alla base di tutte le promesse del futuro che cresce, perché sono le sfumature a dare vita ai colori e a farci tornare in mente le cose più pure dei giorni migliori

  4. #4
    Originariamente inviato da Melly


    era facile....


    Grazie mille
    Di niente bella

    05.08.2005 - by alka
    Auguri all'angelo custode dei moderatori.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    229

    RE

    In oracle ce una funzione chiamata NVL che sostituisca un campo null con un valore che gli assegni tu.
    Nel tuo caso pui fare

    select NVL(campo1,'0') + NVL(campo2,'0') + NVL(campo3,'0') + ecc...
    from tabella.


  6. #6
    Utente di HTML.it L'avatar di diegoctn
    Registrato dal
    May 2001
    Messaggi
    2,118
    Ancora più semplice con il comando NZ
    SELECT distinct nz(Inquilini.nome), nz(Inquilini.cognome), etc.

  7. #7
    Ancora meglio

    setta il db che nei campi numerici invece di null metta comunque zero e non avrai problemi di sintassi o di somme......
    Il dubbio non è piacevole, ma la certezza è ridicola. Solo gli imbecilli son sicuri di ciò che dicono.

  8. #8
    Utente bannato
    Registrato dal
    Mar 2002
    Messaggi
    1,811
    Originariamente inviato da diegoctn
    Ancora più semplice con il comando NZ
    SELECT distinct nz(Inquilini.nome), nz(Inquilini.cognome), etc.
    in che database?

    mai visto nz!!

  9. #9
    Originariamente inviato da Genius7115
    Ancora meglio

    setta il db che nei campi numerici invece di null metta comunque zero e non avrai problemi di sintassi o di somme......
    e perchè dovrei negarmi un tipo di dato
    Vascello fantasma dei mentecatti nonchè baronetto della scara corona alcolica, piccolo spuccello di pezza dislessico e ubriaco- Colui che ha modificato l'orribile scritta - Gran Evacuatore Mentecatto - Tristo Mietitore Mentecatto chi usa uTonter danneggia anche te

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.