Calculo de campo nulo

Firebird

05/02/2003

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


Anonymous

Anonymous

Curtidas 0

Respostas

Elbio

Elbio

05/02/2003

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.


GOSTEI 0
POSTAR