Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Querendo_ser_Nerd

Divisor igual a 0

Recommended Posts

(case when (100)) /nvl(c.qtdmincompra,1),0) * nvl(c.qtdmincompra,1) <> 0
then ((1+(0)/(100)) /nvl(c.qtdmincompra,1),0) * nvl(c.qtdmincompra,1) <> 0
else null
end )

 

teste só o divisor

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mesma mensagem acusando o * da primeira linha como o operador invalido,

 

 

(case when ((100) /nvl(c.qtdmincompra,1),0) * nvl(c.qtdmincompra,1) <> 0
then ((1+(0)/(100)) /nvl(c.qtdmincompra,1),0) * nvl(c.qtdmincompra,1) <> 0
else null

end)

Compartilhar este post


Link para o post
Compartilhar em outros sites

(case when (100)) /nvl(c.qtdmincompra,1),0) * nvl(c.qtdmincompra,1) <> 0
then ((1+(0)/(100)) /nvl(c.qtdmincompra,1),0) * nvl(c.qtdmincompra,1) <> 0
else null

end)

 

ajustar parenteses , creio

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia,

 

 

O meu problema com divor 0 está nesta linha..

 

 

* (1+(0)/(100)) )/nvl(c.qtdmincompra,1),0) -- parte quando eu comento me tres os resultados

* (1+(0)/(100)) )/nvl(c.qtdmincompra,1),0) * nvl(c.qtdmincompra,1) ) - conta completa

Motta como devo proceder, vc tem alguma dica?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não tem muito mistério , toda vez que se faz uma divisão a/b se corre o risco de o divisor ser zero, isto dá erro em qualquer linguagem, no SQL do Oracle podemos tratar isto verificando se o divisor é zero

(case when b <> 0 then a/b else null end) 

o divisor pode ser qualquer coisa

(case when (X.VLRTOTALNF * E.QTDEMBALAGEM / 100) <> 0 
    then (z.precogernormal / (X.VLRTOTALNF * E.QTDEMBALAGEM / 100))
 else null end)

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.