Fórum Calculo de campo nulo #35464
05/02/2003
0
Tenho uma consulta em SQL usando o LEFT OUTTER JOIN o que gera campos nulos do lado direito da consulta.. O problema é que um destes campos que podem estar nulos é usado para gerar um terceiro campo:
(Recebido-Pago) as Falta
O problema é que quando recebido é nulo ele não calcula o valor de Falta.
O que devo fazer para corrigir este problema.
Obrigado
daniel@redeye.com.br
(Recebido-Pago) as Falta
O problema é que quando recebido é nulo ele não calcula o valor de Falta.
O que devo fazer para corrigir este problema.
Obrigado
daniel@redeye.com.br
Anonymous
Curtir tópico
+ 0
Responder
Posts
05/02/2004
Elbio
Olá Daniel,
Tente o seguinte: (se vc estiver usando FB 1.5)
((case RECEBIDO when RECEBIDO then RECEBIDO else 0 end) -
(case PAGO when PAGO then PAGO else 0 end)) as FALTA
Pode parecer um pouco estranho, mas quando vc compara um campo nulo a qualquer valor, o resultado é sempre ´falso´, portanto, a instrução case se resume no seguinte:
Se o valor RECEBIDO = RECEBIDO (isso indica que RECEBIDO não é um valor nulo), então será atribuido o próprio valor do seu campo, caso contrário (else -> o valor RECEBIDO é nulo), ele atribuirá 0).
Não consegui utilizar o comando usando uma comparação com NULL, mas se conseguir, fica ainda mais claro:
Seria algo assim:
´case RECEBIDO when NULL then 0 else RECEBIDO end´
Bem... espero ter ajudado...
Até logo.
Elbio.
Tente o seguinte: (se vc estiver usando FB 1.5)
((case RECEBIDO when RECEBIDO then RECEBIDO else 0 end) -
(case PAGO when PAGO then PAGO else 0 end)) as FALTA
Pode parecer um pouco estranho, mas quando vc compara um campo nulo a qualquer valor, o resultado é sempre ´falso´, portanto, a instrução case se resume no seguinte:
Se o valor RECEBIDO = RECEBIDO (isso indica que RECEBIDO não é um valor nulo), então será atribuido o próprio valor do seu campo, caso contrário (else -> o valor RECEBIDO é nulo), ele atribuirá 0).
Não consegui utilizar o comando usando uma comparação com NULL, mas se conseguir, fica ainda mais claro:
Seria algo assim:
´case RECEBIDO when NULL then 0 else RECEBIDO end´
Bem... espero ter ajudado...
Até logo.
Elbio.
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)