AJUDA COM CONSULTA SQL, SUM E UNION
02/03/2020
0
Estou com problemas nessa consulta, preciso somar os dois valores de tipo de pagamento de ambas as tabelas.
Banco de dados Firebird 2.5.
Nessa consulta eu tenho a soma de forma de pagamento das respectivas tabelas, porém gostaria de saber se é possível somar os valores em uma única coluna.
Essa consulta me retorna exemplo.
TOTAL | TIPO
750,00 01
4100 01
Onde o 01 representa o código da forma de pagamento (Dinheiro), gostaria de somar esse dois valores.
select sum(PV.total_cupom)as total, pv.tp_pgto as tipo from trans_PV PV where PV.data between :datai and :dataf and PV.id_empresa=:empresa and PV.sequencia > 705000 and PV.sequencia < 706000 and PV.condicao <> "C" and pv.tp_pgto <> " " group by tipo UNION select sum(C.total_cupom)as total, C.tp_pgto as tipo from TRANS_CF C where C.data between :datai and :dataf and C.id_empresa=:empresa and C.sequencia > 705000 and C.sequencia < 706000 and C.condicao <> "C" and C.tp_pgto <> '' " group by tipo
Bruno Divino
Post mais votado
03/03/2020
select tipo, sum(subtotal) total from ( select sum(PV.total_cupom) as subtotal, pv.tp_pgto as tipo from trans_PV PV where PV.data between :datai and :dataf and PV.id_empresa=:empresa and PV.sequencia > 705000 and PV.sequencia < 706000 and PV.condicao <> "C" and pv.tp_pgto <> " " group by tipo UNION select sum(C.total_cupom) as subtotal, C.tp_pgto as tipo from TRANS_CF C where C.data between :datai and :dataf and C.id_empresa=:empresa and C.sequencia > 705000 and C.sequencia < 706000 and C.condicao <> "C" and C.tp_pgto <> '' " group by tipo ) juncao group by tipo
Emerson Nascimento
Mais Posts
02/03/2020
Emerson Nascimento
select tipo, sum(subtotal) total from ( select sum(PV.total_cupom) as subtotal, pv.tp_pgto as tipo from trans_PV PV where PV.data between :datai and :dataf and PV.id_empresa=:empresa and PV.sequencia > 705000 and PV.sequencia < 706000 and PV.condicao <> "C" and pv.tp_pgto <> " " group by tipo UNION select sum(C.total_cupom) as subtotal, C.tp_pgto as tipo from TRANS_CF C where C.data between :datai and :dataf and C.id_empresa=:empresa and C.sequencia > 705000 and C.sequencia < 706000 and C.condicao <> "C" and C.tp_pgto <> '' " group by tipo ) juncao group by tipo ) juncao group by tipo
03/03/2020
Bruno Divino
select tipo, sum(subtotal) total from ( select sum(PV.total_cupom) as subtotal, pv.tp_pgto as tipo from trans_PV PV where PV.data between :datai and :dataf and PV.id_empresa=:empresa and PV.sequencia > 705000 and PV.sequencia < 706000 and PV.condicao <> "C" and pv.tp_pgto <> " " group by tipo UNION select sum(C.total_cupom) as subtotal, C.tp_pgto as tipo from TRANS_CF C where C.data between :datai and :dataf and C.id_empresa=:empresa and C.sequencia > 705000 and C.sequencia < 706000 and C.condicao <> "C" and C.tp_pgto <> '' " group by tipo ) juncao group by tipo ) juncao group by tipo
Emerson obrigado por responde, porém eu estou com uma dúvida, isso é um subselect correto.
O primeiro select
Tipo, sum(subtotal) as total
Eu coloquei um as Total, acho que ficou faltando certo?
Também seguindo sua lógia coloquei um " ( " logo após o primeiro select, para fechar com o último do group by, é isso mesmo né?
Já na parte onde você digitou junção, devo fazer um join certo?
03/03/2020
Bruno Divino
select tipo, sum(subtotal) total from ( select sum(PV.total_cupom) as subtotal, pv.tp_pgto as tipo from trans_PV PV where PV.data between :datai and :dataf and PV.id_empresa=:empresa and PV.sequencia > 705000 and PV.sequencia < 706000 and PV.condicao <> "C" and pv.tp_pgto <> " " group by tipo UNION select sum(C.total_cupom) as subtotal, C.tp_pgto as tipo from TRANS_CF C where C.data between :datai and :dataf and C.id_empresa=:empresa and C.sequencia > 705000 and C.sequencia < 706000 and C.condicao <> "C" and C.tp_pgto <> '' " group by tipo ) juncao group by tipo
Emerson, deu certo, muito obrigado!
Vou estudar melhor esse conceito de subselect!
Show de bola, resolvido.
03/03/2020
Bruno Divino
select tipo, sum(subtotal) total from ( select sum(PV.total_cupom) as subtotal, pv.tp_pgto as tipo from trans_PV PV where PV.data between :datai and :dataf and PV.id_empresa=:empresa and PV.sequencia > 705000 and PV.sequencia < 706000 and PV.condicao <> "C" and pv.tp_pgto <> " " group by tipo UNION select sum(C.total_cupom) as subtotal, C.tp_pgto as tipo from TRANS_CF C where C.data between :datai and :dataf and C.id_empresa=:empresa and C.sequencia > 705000 and C.sequencia < 706000 and C.condicao <> "C" and C.tp_pgto <> '''' " group by tipo ) juncao group by tipo
Emerson, deu certo, muito obrigado!
Vou estudar melhor esse conceito de subselect!
Show de bola, resolvido.
Clique aqui para fazer login e interagir na Comunidade :)