subselect para mostrar um somatório da diferença

18/06/2015

0

eu tenho a tabela de vendas e pagamentos realizados, podendo ser pago uma parte inicial e outra posteriormente
queria ver se tem como pegar o total da diferença q falta receber de cada pedido

com este select abaixo me traz a diferença de cada pedido, mas queria ver se tem como trazer o somatório desta diferença para evitar usar while no delphi

select (sum(p.valor) - vd.total_venda) as diferenca , sum(p.valor) as pago, p.cod_pedido, vd.total_venda from pagamentos p
inner join venda_orcamento vd on vd.cod_venda_orcamento = p.cod_pedido
inner join condicaopagamento fp on fp.cod_cond_pagamento = vd.cod_forma_pagamento
where vd.cod_cliente = 144 group by p.cod_pedido, vd.total_venda
having sum(p.valor) - vd.total_venda < 0

imagino se colocasse o calculo da diferença em um select interno a este poderia dar certo. Mas tento e não consigo

desde já agradeço
Cristiane

Cristiane

Responder

Post mais votado

18/06/2015

Errei o código... me desculpe, não conferi como tinha postado...
Faltou informar a cláusula from..
select SUM(result.diferenca) as diferenca
from ( select (sum(p.valor) - vd.total_venda) as diferenca, 
       sum(p.valor) as pago,
       p.cod_pedido,
       vd.total_venda
from pagamentos p
inner join venda_orcamento vd
on vd.cod_venda_orcamento = p.cod_pedido
inner join condicaopagamento fp
on fp.cod_cond_pagamento = vd.cod_forma_pagamento
where vd.cod_cliente = 144 
group by p.cod_pedido, 
         vd.total_venda
having sum(p.valor) - vd.total_venda < 0 ) result

Marisiana Battistella

Marisiana Battistella
Responder

Mais Posts

18/06/2015

Isaac Jose

Bom dia Cristiane. nao entendi bem o que vc quer.
se puder coloque o calculo e o resultado obtido hoje e como vc deseja que ele fique.

abraços.
Responder

18/06/2015

Marisiana Battistella

Seria isso Cristiane?
select SUM(result.diferenca) as diferenca
( select (sum(p.valor) - vd.total_venda) as diferenca, 
       sum(p.valor) as pago,
       p.cod_pedido,
       vd.total_venda
from pagamentos p
inner join venda_orcamento vd
on vd.cod_venda_orcamento = p.cod_pedido
inner join condicaopagamento fp
on fp.cod_cond_pagamento = vd.cod_forma_pagamento
where vd.cod_cliente = 144 
group by p.cod_pedido, 
         vd.total_venda
having sum(p.valor) - vd.total_venda < 0 ) result
Responder

18/06/2015

Cristiane

o cálculo da diferença está no sql: sum(p.valor) - vd.total_venda) as diferenca

com este select o resultado fica assim:

diferença pago cod_venda total_venda
-1 14 1 15
-20 30 2 50
-30 10 3 40

queria q ficasse assim:

diferenca
-51

sendo o -51 o somatório da coluna diferença
Responder

18/06/2015

Cristiane

Marisiana, fiz o teste mas da erro no result, parece q não existe essa função se for no meu caso. uso o firebird, ibexpert
Responder

18/06/2015

Cristiane

isso mesmo, deu certinho valeu Marisiana
Responder

18/06/2015

Cristiane

isso mesmo, deu certinho valeu Marisiana
Responder

18/06/2015

Alex Lekao

acompanhando.
Responder

18/06/2015

Marisiana Battistella

Por nada Cristiane!
Responder

18/06/2015

Alex Lekao

cheguei atrasado.

kkkkkkkkkkkkk
Responder

18/06/2015

Marisiana Battistella

hahahaha... Antes tarde do que nunca Alex!! =D
Responder

18/06/2015

Alex Lekao

kkkkkkkk

vdd...

mas tem erro nao.

na proxima eu acerto.

rsrsr
Responder

19/06/2015

Marisiana Battistella

Isso ai... =D
O que importa é que a intenção era de participar!!
Responder

19/06/2015

Alex Lekao

rsrsr...

Pois eh.

mesmo que não tenho participado, só esporadicamente, as vezes eu tento. rsrs
Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

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

Aceitar