Somar duas tabelas usando o union

11/06/2016

0

Bom dia,
estou fazendo um trabalho da faculdade e preciso somar duas tabelas usando union, mas esta dando erro:
Alguém pode me ajudar? Estou usando o PostgresSQL

ERROR: syntax error at or near "group"
LINE 6: group by mes
^
********** Error **********

ERROR: syntax error at or near "group"
SQL state: 42601
Character: 293


olha com esta meu codigo:
select extract(month from data_emissao)as mes, sum(1*valor)
from(select extract(month from data_emissao), valor
from financeiro_entradas where data_baixa is not null) f union all
(select extract(month from data_emissao), valor*(-1)
from financeiro_saidas where data_baixa is not null)
group by mes
order by mes
Matheus Neves

Matheus Neves

Responder

Posts

11/06/2016

Jair N.

Boa Noite, você testou cada consulta separada?
de cara veja o primeiro FROM que já faz a conversão de parte da data extraindo o "mês", logo, então já tem o mês para que está na seleção novamente da emissão, sua consulta está toda errada reveja. O agrupamento de data de emissão não faz parte de sua consulta e sim o mês. cara isto ai tá o "samba do criolo doido". Faça uma coisa testa, depois de tudo se os itens da primeira consulta for igual aos da segunda, ai faça a união, depois pode somar que vai funcionar.


Bom dia,
estou fazendo um trabalho da faculdade e preciso somar duas tabelas usando union, mas esta dando erro:
Alguém pode me ajudar? Estou usando o PostgresSQL

ERROR: syntax error at or near "group"
LINE 6: group by mes
^
********** Error **********

ERROR: syntax error at or near "group"
SQL state: 42601
Character: 293

olha com esta meu codigo:
select extract(month from data_emissao)as mes, sum(1*valor)
from(select extract(month from data_emissao), valor
from financeiro_entradas where data_baixa is not null) f union all
(select extract(month from data_emissao), valor*(-1)
from financeiro_saidas where data_baixa is not null)
group by mes
order by mes
Responder

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

Aceitar