Fórum AJUDA COM CONSULTA SQL, SUM E UNION #608445
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
Curtir tópico
+ 0Post 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
tipoEmerson Nascimento
Gostei + 1
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
Gostei + 0
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 totalEu 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?
Gostei + 0
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
tipoEmerson, deu certo, muito obrigado!
Vou estudar melhor esse conceito de subselect!
Show de bola, resolvido.
Gostei + 0
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
tipoEmerson, deu certo, muito obrigado!
Vou estudar melhor esse conceito de subselect!
Show de bola, resolvido.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)