É possível na mesma consulta SQL Select (nenhuma função / procedimento nem PL / SQL) calcular uma operação algébrica em duas funções agregadas?
| id || A |
|-----||-----|
| 1 || 10 |
| 2 || 20 |
| 3 || 30 |
| 4 || 40 |
SELECT (SELECT SUM(A) FROM Table Where "id is even") - (SELECT SUM(A) FROM Table Where "id is odd")
FROM TABLE
WHERE "condition"
Qualquer ideia ?
ps: Meu banco de dados é Oracle 11g
Respostas:
4 para resposta № 1Você pode fazer assim:
select sum(case when mod(id,2)=0 then A else 0 end) -
sum(case when mod(id,2)=0 then 0 else a end)
from test
where yourCondition
O SQLFiddle é uma amostra do MySQL, já que o Oracle também possui mod
função deve funcionar como está.
Veja aqui trabalhando aqui: http://sqlfiddle.com/#!9/1ba756/2