Sum em tabelas distintas

21/10/2008

0

Boa tarde Srs !

Preciso fazer um SQL que efetue um SUM em duas tabelas distintas mas parecidas em sua estrutra para poder compor um relatório conforme abaixo :


[b:1c756e1d18]TABELA1 [/b:1c756e1d18]

DATA1
VALOR1
[b:1c756e1d18]
TABELA2 [/b:1c756e1d18]
DATA2
VALOR2

Como posso construir em uma única SQL (acessando as duas tabelas) para montar um relatório com o seguinte leiaute :


MES/ANO---Tabela1 ---------------------Tabela2

JAN/2008 -VALOR EM JAN/2008- -VALOR EM JAN/2008-
FEV/2008 -VALOR EM FEV/2008- -VALOR EM FEV/2008-
MAR/2008 -VALOR EM MAR/2008- -VALOR EM MAR/2008-
ABR/2008 -VALOR EM ABR/2008- -VALOR EM ABR/2008-
MAI/2008 -VALOR EM MAI/2008- -VALOR EM MAI/2008-
JUN/2008 -VALOR EM JUN/2008- -VALOR EM JUN/2008-
JUL/2008 -VALOR EM JUL/2008- -VALOR EM JUL/2008-
AGO/2008 -VALOR EM AGO/2008- -VALOR EM AGO/2008-
SET/2008 -VALOR EM SET/2008- -VALOR EM SET/2008-
OUT/2008 -VALOR EM OUT/2008- -VALOR EM OUT/2008-
NOV/2008 -VALOR EM NOV/2008- -VALOR EM NOV/2008-
DEZ/2008 -VALOR EM DEZ/2008- -VALOR EM DEZ/2008-


Desde já agradeço a colaboração de quem puder ajudar...

[]s


Wmaciel

Wmaciel

Responder

Posts

22/10/2008

Jair Bg

Bem, vamos fazer do jeito mais simples
estou utilizando o Oracle 10g. segue exemplo

SELECT my_tabela.ano
, CASE WHEN (my_tabela.mes = 01) THEN ´JAN´
WHEN (my_tabela.mes = 02) THEN ´FEV´
WHEN (my_tabela.mes = 03) THEN ´MAR´
WHEN (my_tabela.mes = 04) THEN ´ABR´
WHEN (my_tabela.mes = 05) THEN ´MAI´
WHEN (my_tabela.mes = 06) THEN ´JUN´
WHEN (my_tabela.mes = 07) THEN ´JUL´
WHEN (my_tabela.mes = 08) THEN ´AGO´
WHEN (my_tabela.mes = 09) THEN ´SET´
WHEN (my_tabela.mes = 10) THEN ´OUT´
WHEN (my_tabela.mes = 11) THEN ´NOV´
WHEN (my_tabela.mes = 12) THEN ´DEZ´
ELSE ´NIHILL´ END AS mes
, SUM(my_tabela.valor) AS valor

FROM (

SELECT EXTRACT (YEAR FROM tabela1.data1) as ano
, EXTRACT (MONTH FROM tabela1.data1) as mes
, tabela1.valor1 AS valor
FROM tabela1

UNION ALL

SELECT EXTRACT (YEAR FROM tabela2.data2) as ano
, EXTRACT (MONTH FROM tabela2.data2) as mes
, tabela2.valor2 AS valor
FROM tabela2
) my_tabela

GROUP BY my_tabela.ano
, my_tabela.mes

ORDER BY my_tabela.ano
, my_tabela.mes;

Ninguem trabalha porquê gosta, trabalho é o meio que utilizamos para realizar algo, originado de ideias ou desafios. [Klaus Hans]


Responder

30/10/2008

Wmaciel

Obrigado ... a sugestão foi valiosa...
Consegui resolver o problema...
[]s


Responder

APRENDA A PROGRAMAR DO ZERO AO PROFISSIONAL

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar