Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1
    Utente di HTML.it L'avatar di x69asterix
    Registrato dal
    Jan 2005
    Messaggi
    1,303

    Sql Server 2008 query Sum

    il mio problema di base è che dovrei eseguire la somma dove i record possono essere sia null
    che zero o diverso da zero.
    Se io eseguo
    codice:
    SELECT ISNULL(SUM(campo),0) as TOTC .....
    in questo modo ottengo la somma corretta, però esiste un problema
    è cioè in caso di campi null mi restituisce 0, io invece dovrei eseguire la somma del campo che diverso da null .
    esempio
    primo campo = null
    secondo campo=Null
    il risultato mi dà 0

    Quindi se ho due campi uguale a null la somma mi dà zero, invece dovrei avere il risultato a null
    se invece eseguo
    codice:
    SELECT SUM(campo) as TOTC
    se vi sono campi a null non ottengo la somma.
    Come ovviare se possibile a questo problema?

  2. #2
    quindi ottenere NULL se tutti gli addendi sono NULL, corretto?

  3. #3
    Utente di HTML.it L'avatar di x69asterix
    Registrato dal
    Jan 2005
    Messaggi
    1,303
    Originariamente inviato da optime
    quindi ottenere NULL se tutti gli addendi sono NULL, corretto?
    no se tutti, ma potrebbero esserci.
    esempio tre record
    di cui 3 sono null il risultato è zero
    invece mi in questo caso mi aspetto NUll

  4. #4
    allora, se anche un solo addendo è null, il risultato è null?

  5. #5
    Utente di HTML.it L'avatar di x69asterix
    Registrato dal
    Jan 2005
    Messaggi
    1,303
    Originariamente inviato da optime
    quindi ottenere NULL se tutti gli addendi sono NULL, corretto?
    Si in questo caso.

  6. #6
    non capisco. è il comportamento normale di mssql.

    select sum(colonna) from tabella

    se anche un solo valore di colonna è null, il risultato è null

  7. #7
    Utente di HTML.it L'avatar di x69asterix
    Registrato dal
    Jan 2005
    Messaggi
    1,303
    Originariamente inviato da optime
    non capisco. è il comportamento normale di mssql.

    select sum(colonna) from tabella

    se anche un solo valore di colonna è null, il risultato è null
    appunto invece io mi dovrei aspettare la somma dei campi diversi dal campo null!!
    es:
    primo campo = null
    sec "" = 1
    TERZO " = NULL

    io mi aspetto 1 invece null?

  8. #8
    beh, deciditi, ok? rileggiti il thread e da solo capisci che ogni volta dai una risposta diversa

  9. #9
    Utente di HTML.it L'avatar di x69asterix
    Registrato dal
    Jan 2005
    Messaggi
    1,303
    in che senso?
    con
    codice:
    SELECT ISNULL(SUM(campo),0)
    primo campo = null
    sec "" = 1
    TERZO " = NULL
    risultato corretto
    ma
    codice:
    SELECT ISNULL(SUM(campo),0)
    secondo esempio
    primo campo = null
    sec "" = null
    TERZO " = NULL

    io mi aspetto Null invece 0?

  10. #10
    Originariamente inviato da x69asterix
    in che senso?
    con
    codice:
    SELECT ISNULL(SUM(campo),0)
    primo campo = null
    sec "" = 1
    TERZO " = NULL
    risultato corretto
    ma
    codice:
    SELECT ISNULL(SUM(campo),0)
    secondo esempio
    primo campo = null
    sec "" = null
    TERZO " = NULL

    io mi aspetto Null invece 0?
    ti quoto quello che hai risposto ad una mia domanda, che contrasta con quello che hai appena scritto

    ----------------

    Citazione:
    Originariamente inviato da optime
    quindi ottenere NULL se tutti gli addendi sono NULL, corretto?

    no se tutti, ma potrebbero esserci.
    esempio tre record
    di cui 3 sono null il risultato è zero
    invece mi in questo caso mi aspetto NUll
    ----------------

    qual è quella giusta?

    e rifaccio la domanda

    quindi ottenere NULL se tutti gli addendi sono NULL, corretto?

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.