Somar itens definidos de duas colunas PLSQL ORACLE
Bom dia! Me deparei com a necessidade de somar valores de duas colunas, os quais não seriam os valores de todas as linhas mas sim de linhas definidas por mim.
Deixando um pouco mais literal, Sinal + Valor da coluna e linha que deve entrar nessa soma, Sinal - Valor da coluna e linha que não deve fazer parte dessa soma.
Coluna 1 Coluna 2
+ -
+ -
+ -
- +
+ -
- +
Alguém teria uma ideia de como eu poderia implementar este select?
Deixando um pouco mais literal, Sinal + Valor da coluna e linha que deve entrar nessa soma, Sinal - Valor da coluna e linha que não deve fazer parte dessa soma.
Coluna 1 Coluna 2
+ -
+ -
+ -
- +
+ -
- +
Alguém teria uma ideia de como eu poderia implementar este select?
Maicon Scapatici
Curtidas 0
Respostas
Emerson Nascimento
14/11/2018
não sei se entendi....
select sum(case when coluna1 = '+' then colunavalor1 else 0 end) + sum(case when coluna2 = '+' then colunavalor2 else 0 end) total from tabela
GOSTEI 0
Maicon Scapatici
14/11/2018
Sua lógica tem sentido, mas no caso do operador de comparação daria certo, mas no meu caso cada representação de + ou - serão valores float. vou fazer alguns testes com a sugestão. Pois acho que daria para criar um campo de comparação pra '0' e fazer com case. Obrigado pela sugestão.
GOSTEI 0
Emerson Nascimento
14/11/2018
Se é pra comparar um valor positivo/negativo:
select sum(case when coluna1 > 0 then coluna1 else 0 end) + sum(case when coluna2 > 0 then coluna2 else 0 end) total from tabela
GOSTEI 0