GARANTIR DESCONTO

Fórum Impossível retorna valor ao invés de null #571346

22/11/2016

0

BOm dia galera, tenho a seguinte SQL que estou rodando sob o bando de dados da TOTVS, minha dúvida vem quando preciso retorna o valor 0 ao ivés de valor NULL. Preciso usar esse trecho em uma soma posteriormente e valores nulo, anulam a soma.

SELECT
(SELECT coalesce(VALOR,0) FROM TTRBMOV(nolock) WHERE CODTRB = 'IPI'
AND TTRBMOV.IDMOV=TMOV.IDMOV
AND TTRBMOV.NSEQITMMOV=TITMMOV.NSEQITMMOV)
FROM TMOV(NOLOCK)

INNER JOIN TITMMOV (NOLOCK) ON (TMOV.CODCOLIGADA=TITMMOV.CODCOLIGADA AND TMOV.IDMOV=TITMMOV.IDMOV)

Há alguma maneira de resolver isso ? Já tentei com isnull e com coalesce. Mesmo assim continuam trazendo valroes NULL
Chromusmaster

Chromusmaster

Responder

Post mais votado

22/11/2016

Chromumaster, tenta substituir o COALESCE por:

ISNULL([valor],0)

Fiz uma simulação aqui e funcionou.

Alec Candia

Alec Candia
Responder

Gostei + 1

Mais Posts

22/11/2016

Jones Granatyr

Opa! Sempre usei o Coalesce e sempre funcionou. Você tentou rodar somente a parte SQL do coalesce, para certificar de que realmente está trazendo null?
Responder

Gostei + 0

22/11/2016

Chromusmaster

Sim! Mesmo rodando apenas a parte do coalesce continua trazendo o valor null ao invés de trocar por 0
Responder

Gostei + 0

22/11/2016

Alec Candia

Uma situação também que pode estar influenciando é o fato de estar sendo usado um SELECT dentro de outro SELECT.
Se houver falha, pode retornar NULL não exatamente o campo VALOR, mas o resultado da SUBCONSULTA.

Eu tentaria separar a QUERY em partes até achar o problema.
Responder

Gostei + 1

23/11/2016

Chromusmaster

Cara vou tentar fazer isso. Obrigado pela dica
Responder

Gostei + 0

23/11/2016

Chromusmaster

Chromumaster, tenta substituir o COALESCE por:

ISNULL([valor],0)

Fiz uma simulação aqui e funcionou.


Cara, resolveu meu problema. OBG
Responder

Gostei + 0

02/12/2016

Chromusmaster

Para quem passar pelo mesmo problema tem uma solução "não muito bacana" mas que evita de fazer alguma conta com valor nulo

SELECT
ISNULL((SELECT isnull([VALOR],0) FROM TTRBMOV(nolock) WHERE CODTRB = 'IPI'
AND TTRBMOV.IDMOV=TMOV.IDMOV
AND TTRBMOV.NSEQITMMOV=TITMMOV.NSEQITMMOV),0)[IPI]
FROM TMOV(NOLOCK)

INNER JOIN TITMMOV (NOLOCK) ON (TMOV.CODCOLIGADA=TITMMOV.CODCOLIGADA AND TMOV.IDMOV=TITMMOV.IDMOV)
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar