forcar soma ou subtracao de um campo null no firebird
12/07/2005
0
bom dia pessoal, qro saber c tem como eu fazer operacoes aritimeticas com um campo null ou c exite alguma funcao q force o campo ficar 0 qdo for null dentro da SQL tipo o SUM, MAX, AVG, COUNT entre outros preciso disso com maior ugencia C ALGUEM PUDER ME AJUDAR AGRADECO OBRIGADOOOO!!!!!!
[color=green:20148e4b2b]Movido de Delphi para Interbase/Firebird[/color:20148e4b2b]
[color=green:20148e4b2b]Movido de Delphi para Interbase/Firebird[/color:20148e4b2b]
Eltontlms
Curtir tópico
+ 0
Responder
Post mais votado
12/07/2005
Se for Firebird 1.5, te a função COALESCE que pega o primeiro valor NÃO NULO de uma sequencia... por exemplo
SELECT COALESCE(CDCLIENTE, CDFORNECEDOR, 0) FROM TABELA
ele irá testar se CDCLIENTE é nulo... se for passa para CDFORNECEDOR... e assim por diante, até achar um valor não nulo... no nosso caso o 0 (zero).
para funcionar no seu caso:
SELECT SUM(COALESCE(CAMPO, 0)) FROM TABELA
SELECT COALESCE(CDCLIENTE, CDFORNECEDOR, 0) FROM TABELA
ele irá testar se CDCLIENTE é nulo... se for passa para CDFORNECEDOR... e assim por diante, até achar um valor não nulo... no nosso caso o 0 (zero).
para funcionar no seu caso:
SELECT SUM(COALESCE(CAMPO, 0)) FROM TABELA
Kotho
Responder
Mais Posts
14/07/2005
Reginaldo174
Aconselho a atribuir o valor 0 aos campos null
update tabela set campo = 0 where campo is null
Responder
25/09/2018
Gladstone Matos
Se for Firebird 1.5, te a função COALESCE que pega o primeiro valor NÃO NULO de uma sequencia... por exemplo
SELECT COALESCE(CDCLIENTE, CDFORNECEDOR, 0) FROM TABELA
ele irá testar se CDCLIENTE é nulo... se for passa para CDFORNECEDOR... e assim por diante, até achar um valor não nulo... no nosso caso o 0 (zero).
para funcionar no seu caso:
SELECT SUM(COALESCE(CAMPO, 0)) FROM TABELA
SELECT COALESCE(CDCLIENTE, CDFORNECEDOR, 0) FROM TABELA
ele irá testar se CDCLIENTE é nulo... se for passa para CDFORNECEDOR... e assim por diante, até achar um valor não nulo... no nosso caso o 0 (zero).
para funcionar no seu caso:
SELECT SUM(COALESCE(CAMPO, 0)) FROM TABELA
me ajudou MUITO obrigado! :D
Responder
Clique aqui para fazer login e interagir na Comunidade :)