Array
(
)

Somar descartando negativos

Breguede
   - 29 mar 2006

Caros,

preciso somar os valores de uma tabela descartando os valore negativos através de uma query. Ou seja somar apenas os valores positivos, caso haja negativos ignorar.

Obrigado!!!!


Thomaz_prg
   - 30 mar 2006

uma forma seria:

#Código

select sum( valor ) from tabela where valor > 0



Breguede
   - 30 mar 2006

O unico probelma é que somo varios outros campos.. fazendo dessa maneira eu desprezaria os outros campos. Tipo tenho valor1, valor2 e valor3. Somo todos eles. Caso o valor3 de um registro seja negativo naum somo apenas ele os outros (valor1 e valor2) tenho q somar... naum sei c fui claro mais eh mais ou menos issu!!!


Thomaz_prg
   - 31 mar 2006

Qual BD tá usando??

Se for o Firebird (1.5 ou acima) ou DB2, pode usar case:

#Código


SELECT SUM( CASE WHEN CAMPO1 < 0 THEN 0 ELSE CAMPO1 END +
CASE WHEN CAMPO2 < 0 THEN 0 ELSE CAMPO2 END +
CASE WHEN CAMPO3 < 0 THEN 0 ELSE CAMPO3 END )
FROM TABELA


Tipo, ele verifica se o campo é maior que zero para somar. Se não for isso, dê alguns exemplos e diga qual é o BD.


Breguede
   - 31 mar 2006

estou usando paradox!!!!