Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

J Vitor

select

Recommended Posts

Bom dia pessoal. Me ajudem, por favor.


Tenho as tabelas :


TABELA 1:


DATA: 20130301

CODIGO: 001

VALOR: 20


DATA: 20130301

CODIGO: 001

VALOR: 10


DATA: 20130301

CODIGO: 001

VALOR: 30


TABELA 2


DATA: 20130301

CODIGO: 001

VALOR: 35


DATA: 20130301

CODIGO: 001

VALOR: 60


Eu gostaria de somar os totais de um determinado "CODIGO" por data:

mais ou menos assim:



tabela 1


DATA: 20130301

CODIGO: 001

TOTAL: 70


tabela 2


DATA: 20130301

CODIGO: 001

TOTAL: 95


Tentei algo como:



SELECT


A.DATA ,

B.DATA ,

A.CODIGO ,

B.CODIGO ,

A.VALOR ,

B.VALOR


FROM


TABELA1 A ,

TABELA2 B


WHERE


A.CODIGO = B.CODIGO


GROUP BY


A.CODIGO , B.CODIGO



Porém , esta triplicando o valor da TABELA2 ...


Valeu!

Compartilhar este post


Link para o post
Compartilhar em outros sites

UNION

 

SELECT 'TABELA1' TABELA,COD,DATA,VALOR FROM TABELA1
UNION
SELECT 'TABELA2' TABELA,COD,DATA,VALOR FROM TABELA2

Monta uma virtual

 

SELECT TABELA,COD,DATA,VALOR
FROM
(
SELECT 'TABELA1' TABELA,COD,DATA,VALOR FROM TABELA1
UNION
SELECT 'TABELA2' TABELA,COD,DATA,VALOR FROM TABELA2
) VIRTUAL

 

Sum

 

 

 

SELECT TABELA,COD,DATA,SUM(VALOR) VALOR
FROM
(
SELECT 'TABELA1' TABELA,COD,DATA,VALOR FROM TABELA1
UNION
SELECT 'TABELA2' TABELA,COD,DATA,VALOR FROM TABELA2
) VIRTUAL
GROUP BY TABELA,COD,DATA

 

 




			
		

Compartilhar este post


Link para o post
Compartilhar em outros sites

Motta ,

 

Valeu mesmo. O UNION funcionou perfeitamente.

Conheço PL/SQL e me confundo um pouco no MYSQL.

Só mais uma pergunta: Tem como formatar o resultado da consulta ?

Ficou mais ou menos assim :

 

DATA , CODIGO , VALOR

 

Preciso de algo como:

 

DATA , CODIGO , VALOR(TABELA1) , VALOR(TABELA2 )

Compartilhar este post


Link para o post
Compartilhar em outros sites

CASE

 

 

SELECT COD,
       DATA,
       SUM(CASE WHEN TABELA = 'TABELA1' THEN VALOR ELSE 0 END) TABELA1,
       SUM(CASE WHEN TABELA = 'TABELA2' THEN VALOR ELSE 0 END) TABELA2
FROM
(
SELECT 'TABELA1' TABELA,COD,DATA,VALOR FROM TABELA1
UNION
SELECT 'TABELA2' TABELA,COD,DATA,VALOR FROM TABELA2
) VIRTUAL
GROUP BY COD,DATA

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.