Array
(
    [0] => stdClass Object
        (
            [Votos_Balanceados] => 1
            [id] => 523231
            [titulo] => subselect para mostrar um somatório da diferença
            [dataCadastro] => DateTime Object
                (
                    [date] => 2015-06-18 13:49:39
                    [timezone_type] => 3
                    [timezone] => America/Sao_Paulo
                )

            [isFirstPost] => -1
            [idUsuario] => 262490
            [status] => A
            [isExample] => 
            [NomeUsuario] => Marisiana Battistella
            [Apelido] => Marisiana
            [Foto] => 262490_20141229171421.jpg
            [Conteudo] => Errei o código... me desculpe, não conferi como tinha postado...
Faltou informar a cláusula from..
[code]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[/code] ) )

subselect para mostrar um somatório da diferença

Cristiane
   - 18 jun 2015

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

Post mais votado

Marisiana
   - 18 jun 2015

Errei o código... me desculpe, não conferi como tinha postado...
Faltou informar a cláusula from..
#Código

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

Isaac Jose
   - 18 jun 2015

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.

Marisiana
   - 18 jun 2015

Seria isso Cristiane?
#Código

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

Cristiane
   - 18 jun 2015

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

Cristiane
   - 18 jun 2015

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

Cristiane
   - 18 jun 2015

isso mesmo, deu certinho valeu Marisiana

Cristiane
   - 18 jun 2015

isso mesmo, deu certinho valeu Marisiana

Alex Lekao
   - 18 jun 2015

acompanhando.

Marisiana
   - 18 jun 2015

Por nada Cristiane!

Alex Lekao
   - 18 jun 2015

cheguei atrasado.

kkkkkkkkkkkkk

Marisiana
   - 18 jun 2015

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

Alex Lekao
   - 18 jun 2015

kkkkkkkk

vdd...

mas tem erro nao.

na proxima eu acerto.

rsrsr

Marisiana
   - 19 jun 2015

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

Alex Lekao
   - 19 jun 2015

rsrsr...

Pois eh.

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