Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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!
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 )
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
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