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
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
Curtir tópico
+ 0
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]
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
Consegui resolver o problema...
[]s
Responder
Clique aqui para fazer login e interagir na Comunidade :)