Retornar valor zero quando for nulo

Dúvidas, dicas e truques de SQL, Select, Update, Delete, cláusulas, operações com joins, Funções em SQLs, etc
rhicky
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 58
Registrado em: Sex, 20 Jul 2007 9:48 am
Localização: S. J. do Rio Preto/SP
Rhicky

Prezados,

Na consulta sql abaixo preciso que a coluna "B" traga o valor 0 (zero) quando for nulo. Porém, mesmo utilizando a função "NVL" o sistema continua a retornar nulo. Como resolver esse problema ?

Selecionar tudo

SELECT
 a.codcoligada, 
 a.chapa, 
 a.data, 
 sum(a.numhoras) A,
 (select nvl(sum(b.numhoras), 0)
  FROM 
  amovfundia b
  WHERE 
  b.codcoligada = a.codcoligada and
  b.chapa = a.chapa and   
  b.data = a.data and
  b.codeve in ('1163')
  GROUP BY
  b.codcoligada, b.chapa, b.data) B
 
FROM 
amovfundia a
WHERE 
a.codcoligada = 4 and
a.chapa = '0101922' and
a.data between (
   select x.iniciomensal from aperiodo x where x.codcoligada = a.codcoligada and x.mescomp =2 and x.anocomp =2012) 
   and (select x.fimmensal from aperiodo x where x.codcoligada = a.codcoligada and x.mescomp =2 and x.anocomp =2012) and
a.codeve in ('0557', '1158', '1160')
GROUP BY
a.codcoligada, a.chapa, a.data
DanielNN
Moderador
Moderador
Mensagens: 641
Registrado em: Seg, 03 Set 2007 3:26 pm
Localização: Fortaleza - CE
att,

Daniel N.N.

Tente assim que vai dar certo:

Selecionar tudo

NVL((select sum(b.numhoras)
  FROM 
  amovfundia b
  WHERE 
  b.codcoligada = a.codcoligada and
  b.chapa = a.chapa and   
  b.data = a.data and
  b.codeve in ('1163')
  GROUP BY
  b.codcoligada, b.chapa, b.data),0)
O problema é que como sua consulta não traz NADA, do modo que você tava fazendo não dava para inserir 0 de retorno num select que não retorna NADA.
Neste caso é preciso colocar "por fora".
rhicky
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 58
Registrado em: Sex, 20 Jul 2007 9:48 am
Localização: S. J. do Rio Preto/SP
Rhicky

Ok, o indicado resolveu o problema.

Obrigado!
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 10 visitantes