Somando vários SELECTS em uma só sentença

Somando vários SELECTS em uma só sentença

Bem srs, nas dificuldades do dia-a-dia nós achamos as respostas.

Precisava realizar uma soma em diversas tabelas mas o resultado teria que ser dado em um único campo e as tabelas não se relacinavam entre si… solução simpes e rápida:

SELECT (
SELECT COALESCE(SUM(A),0) FROM TABELAX WHERE CONDICAO = 'X'
) + (
SELECT COALESCE(SUM(B),0) FROM TABELAY WHERE CONDICAO = 'Y'
)

Simples não é?

O pulo do gato é você tratar o resultado NULO, em determinada situação, se uma das consultas retornar NULL e você não tiver tratado ele com o COALESCE – que serve para, se o valor for nulo, retorne alguma coisa, no nosso caso, se a soma for nula, retorna 0 – o resultado da sua consulta será 0, mesmo que uma das duas tenha algum valor.

Por hoje é só, lembrando que esta dica é para SQL Server

Sobre o Autor

Daniel Carvalho é um entusiasta da tecnologia, especialista em TI e MBA em Gerência de Projetos. É atualmente sócio-consultor da Ethos Consultores Ltda em Minas Gerais.