Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 35
  1. #1
    Utente di HTML.it L'avatar di arw
    Registrato dal
    Dec 2007
    Messaggi
    149

    sommare valore presente con VALORE mancante

    ciao ,
    ho un problemino, ovvero devo fare una somma e mi si è presentato un problema quando l'estrazione non mi da un valore.
    per cui 123+niente mi da niente
    In questo caso dovrebbe restituirmi solo il primo valore ovvero 123.


    Come gli dico o meglio che funzione posso usare per dirgli : se non c'è il valore metti ZERO
    cosi che la somma possa funzionare?
    una funziona simile a ISNULL ma non so quale, visto che non cè valore nella tabella.

    uso SQL server 2008

  2. #2
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,780
    quindi la casella è vuota ma non è nulla?

    due opzioni:
    -nel db: valore di default 0
    -in lavorazione dati: se vuota = 0

  3. #3
    Utente di HTML.it L'avatar di arw
    Registrato dal
    Dec 2007
    Messaggi
    149
    Si esatto ho VUOTO non null.
    sul DB putroppo non posso intervenire, l'altra opzione invece :
    -in lavorazione dati: se vuota = 0

    ok, come faccio?

  4. #4
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,780
    if valore = "" then valore = 0

  5. #5
    Utente di HTML.it L'avatar di arw
    Registrato dal
    Dec 2007
    Messaggi
    149
    ... scusa non intevo vuoto al posto di null.
    ma che non mi trova nessuna riga.


    io vado a prendere i 2valori in 2 tabelle diverse e poi devo sommare i dati.
    in una tabella mi esce un risultato , nell'altra no.
    però la somma dovrebbe essere in questo caso il primo risultato.

    Ma essendo che la secodna tabella non mi restituisce niente, la somma non mi da niente.

    ...come faccio?

  6. #6
    stiamo parlando di tabelle di database?

    posta come sono fatte le tabelle, di quale db stiamo parlando, e la tua query

  7. #7
    Utente di HTML.it L'avatar di arw
    Registrato dal
    Dec 2007
    Messaggi
    149
    si certo tabelle DB.


    codice:
    select tabDUE.codCommessa,
    SUM(tabDUE.cmAZIENDA - tabDUE.subTotale) as COSTO_ANNO_PIANIFICATO
    from (
    	select tabUno.codCommessa, tabUno.cmAZIENDA,
    	SUM(tabUno.SALDO + tabUno.rollingIMPORTO) as subTotale
    	from(
    		select CO_CM_m.CMCODCOM as codCommessa,--CO_CM_m.CMSERIAL,
    		CMTCM_AZI as cmAZIENDA,
    		--tr_msracomm.SRACOMM,tr_msracomm.SRAANNO,
    		tr_msracomm.SRATOTCOS as SALDO,
    		--co_arollcost.RCCOMM,co_drollcostprofris.RCCM, 
    		SUM(RCIMPORT) as rollingIMPORTO 
    		from CO_CM_m
    		left outer join co_commesse on CO_CM_m.CMCODCOM=co_commesse.COMMCODICE
    		left outer join  tr_msracomm_m on CO_CM_m.CMCODCOM=tr_msracomm_m.SRACOMM
    		left outer join tr_msracomm on tr_msracomm_m.SRACOMM = tr_msracomm.SRACOMM and 
    		tr_msracomm_m.SRAANNOC = tr_msracomm.SRAANNOC and tr_msracomm_m.SRAMESEC = tr_msracomm.SRAMESEC
    		left outer join co_arollcost on CO_CM_m.CMCODCOM=co_arollcost.RCCOMM
    		left outer join co_drollcostprofris  on co_arollcost.RCCM=co_drollcostprofris.RCCM and co_drollcostprofris.RCANN not in ('2012','2013') 
    		and co_arollcost.RCNUMCM = co_drollcostprofris.RCNUMCM
    		where CO_CM_m.CMCODCOM='000000000000022'and 
    		CO_CM_m.CMREV=(select MAX(CO_CM_m.CMREV) from CO_CM_m where CMCODCOM=co_commesse.COMMCODICE and CO_CM_m.CMSTATO='AP')
    		and co_arollcost.RCREV=(select MAX(CO_CM_m.CMREV) from CO_CM_m where CMCODCOM=co_commesse.COMMCODICE and CO_CM_m.CMSTATO='AP')
    		and tr_msracomm.SRAMESEC='1' and tr_msracomm.SRAANNO='2012' and tr_msracomm.SRATOTCOS<>'0'
    		group by CO_CM_m.CMCODCOM,CO_CM_m.CMTCM_AZI,tr_msracomm.SRATOTCOS
    	) tabUno
    	group by tabUno.codCommessa,tabUno.cmAZIENDA
    )tabDUE
    group by tabDUE.codCommessa

    cmAZIENDA = 104448.29738
    SALDO = non cè la commessa
    rollingIMPORTO = 0.00000


    il calcolo è:
    [cmAZIENDA - (saldo + rollingIMPORTO )]

    mi sono accorta che il SALDO puo non esserci e questo mi da problemi.
    perche non mi restituisce NIENTE

  8. #8
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,780
    Originariamente inviato da arw
    ... scusa non intevo vuoto al posto di null.
    ma che non mi trova nessuna riga.
    che è tutt'altra storia


    io vado a prendere i 2valori in 2 tabelle diverse e poi devo sommare i dati.
    in una tabella mi esce un risultato , nell'altra no.
    metti un condizione per:
    se non hai risultati O se il risultato è nullo
    il risultato è 0

    poi lo lavori

  9. #9
    Utente di HTML.it L'avatar di arw
    Registrato dal
    Dec 2007
    Messaggi
    149
    Originariamente inviato da Vincent.Zeno
    che è tutt'altra storia




    metti un condizione per:
    se non hai risultati O se il risultato è nullo
    il risultato è 0

    poi lo lavori

    si cerco una cosa cosi, ma in SQL come glielo dico?

  10. #10
    non hai specificato il db. comunque, visto che qualunque valore + NULL dà sempre NULL, usa un'espressione come questa

    SUM(ISNULL(colonna,0))

    se colonna vale qualcosa (compreso 0, purché non NULL), somma quel qualcosa, altrimenti (coè se è NULL) somma zero.

    potresti dover usare COALESCE (è più standard) o IIF (solo per Access)


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.