Ir ao conteúdo
  • Cadastre-se

Como somar 02 selects.


Posts recomendados

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.
 

Link para o comentário
Compartilhar em outros sites

  • Moderador

@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
Link para o comentário
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.

Link para o comentário
Compartilhar em outros sites

  • mês depois...
  • 3 anos depois...
  • 3 semanas depois...

Poderia aproveitar esse post e pedir ajuda para algo bem igual a duvida do nosso amigo ai em cima.

Usando a sugestão do Jose isso rolou de boa.

Mas essa tabela tem um campo que preciso filtrar que é a data. E quando coloco junto com o where das duas linhas, ele não retorna nenhum valor.

Preciso usar o count ali por que a coluna tem valor zero. O sum nesse caso não ajuda. 

Como será que consigo usar um where com o filtro de data nessa consulta.

 

SELECT SUM(TOTAL) PESSOAS FROM
(
select sum(numberpersons) TOTAL from documentsheaders where numberpersons > 0
UNION
select count(*) TOTAL from documentsheaders where numberpersons = 0
) AS TAB

Link para o comentário
Compartilhar em outros sites

  • mês depois...

@drlnss tudo bem?

neste caso, como nenhuma das alternativas dos amigos deu certo, tenta dessa forma:

with interno as (

select SUM(servicointerno.valor)as valor_total from servicointerno),

externo as (

select SUM(servicoexterno.valorServico)as valor_total from servicoexterno),

total as (

select * from interno

union 

select * from externo)



select sum(valor_total) from total

espero ter ajudado!

 

Abs

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário 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 comunidades 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

×
×
  • Criar novo...