Ir ao conteúdo
  • Cadastre-se
drlnss

Como somar 02 selects.

Recommended Posts

Olá. 

 

Estou desenvolvendo um Banco de Dados que informa um tipo de serviço, e qual foi o seu valor.

 

Exitem 02 tipos de serviço: INTERNO E EXTERNO.

Eu consigo a soma total de Interno e Externo assim:

select SUM(servicointerno.valor) from servicointerno;
select SUM(servicoexterno.valorServico) from servicoexterno;

Como faço para obter a soma dos valores totais de Interno e Externo. Ou seja, a soma desses dois selects.

Tentei pelo Union ALL, mas ele aparece os dois resultados separados e não somados.
 

Compartilhar este post


Link para o post
Compartilhar em outros sites

@drlnss @dcm50

Use View que pode ser que consiga.

Basicamente crie uma VIEW para criar uma tabela espelho  e nessa nova tabela você usa o SUM novamente.

 

Exemplo

CREATE VIEW calculaTudo AS 
SELECT SUM(servicointerno.valor) as valorInterno , SUM(servicoexterno.valorServico)  as valorExterno
FROM servicointerno, servicoexterno

Isso iriá criar uma terceira tabela chamada calculaTudo com dois campos valor interno e valorExterno  e aí faça o cálculo:

(SUM(valorInterno)  + SUM(valorExterno))

 

PS: pode não funcionar, fiz só uma breve pesquisa no google.

E o o meu exemplo é só representativo.. por isso sugiro que pesquise sobre VIEW, cálculos de múltiplas colunas.  

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@DiF Não funcionou. 

 

Cadastrei R$ 1,00 em Interno 5 vezes, R$ 1,00 em cada insert. Total R$ 5,00.

Cadastrei R$ 10,00 em Externo 5 vezes, R$ 10,00 em cada insert. Total R$ 50,00.

 

Ele deveria retornar R$ 55,00. Mas retornou R$ 275,00. Que é R$ 55,00 vezes 5, que foi o número de linhas que inseri.

 

Mas ainda assim muito obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Algo assim?

 

select sum((select sum(valor) from interno)+
                  (select sum(valor) from externo)) TOTAL
  from dual;

 

Se precisar do valor de somente uma row de cada tabela da pra deixar select valor from interno where servico='N'.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa!

Tente isso:

SELECT SUM(TOTAL)
FROM(
SELECT SUM(servicointerno.valor) TOTAL
FROM servicointerno
UNION
SELECT SUM(servicoexterno.valorServico) TOTAL
FROM servicoexterno
) AS TAB

:thumbsup:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×