Não consigo fazer soma usando Sum no Sql

Firebird

09/02/2007

Pessoal

Não consigo fazer soma com campos usando Sum em SQL.
Se tenho os campos VL_PAGO e VL_MULTA e VL_DESP, se um desses campos está null, retorna null em todos eles

estou fazendo assim

SELECT CAMPO1, CAMPO2, SUM(VL_PAGO + VL_MULTA + VLDESP) as TotalPago

Está retornando NULL quando um dos campos está null
Aguardo resposta
Sou usuário de Delphi 7 + Interbase 6.0 + Conexão DBEXPRESS

Rogério


Rogeranalista

Rogeranalista

Curtidas 0

Respostas

Sremulador

Sremulador

09/02/2007

utilize o coalesce(Campo, valor);


GOSTEI 0
Rogeranalista

Rogeranalista

09/02/2007

Colega

Com o coalesc, não funciona. Estou usando o Interbase 6.0. Pensou eu que deve estar disponível somente para Firebird.. Será ???



Rogério


GOSTEI 0
Emerson Nascimento

Emerson Nascimento

09/02/2007

tente assim:
SELECT
  CAMPO1, CAMPO2,
  SUM(VL_PAGO) TotPago,
  SUM(VL_MULTA) TotMulta,
  SUM(VLDESP) TotDesp
e depois trate os resultados individualmente

ou assim:
SELECT
  CAMPO1, CAMPO2,
  SUM(
    (case when VL_PAGO is null then 0.0 else VL_PAGO end) + 
    (case when VL_MULTA is null then 0.0 else VL_MULTA end) + 
    (case when VLDESP is null then 0.0 else VLDESP end)
  ) TotalPago



GOSTEI 0
Rogeranalista

Rogeranalista

09/02/2007

Valeu cara, o exemplo que voce passou com Case When funcionou, é o que estava precisando mesmo..

Obrigado pela força





Rogério


GOSTEI 0
POSTAR