Comissões e verba para descontos dos vendedores.

SQL - Como consultar o saldo de caixa para vendedores?

CAIVEN.FAQ-10392

select q.*
, (q.saldo - caixa_menos_ped - caixa_menos_doc)
from (
select pess.nome_completo
, cx.saldo
, (select sum(ip.quantidade_pendente * (ip.preco - ip.preco_lista))
  from itens_pedidos ip
  join pedidos p on p.id = ip.pedido_id
  where ip.quantidade_pendente > 0
  and p.situacao not in ('C','E')
  and p.vendedor_id = vend.id
  and ip.preco > ip.preco_lista) as caixa_mais_ped
, (select sum(ip.quantidade_pendente * (ip.preco_lista - ip.preco))
  from itens_pedidos ip
  join pedidos p on p.id = ip.pedido_id
  where ip.quantidade_pendente > 0
  and p.situacao not in ('C','E')
  and p.vendedor_id = vend.id
  and ip.preco < ip.preco_lista) as caixa_menos_ped
, (select sum(it.quantidade * (coalesce(it.valor_unitario,0) - coalesce(it.valor_atual_colecao,0)))
  from itens_doc_entradas_saidas it
  join doc_entradas_saidas doc on doc.id = it.documento_id
  where doc.situacao_documento = 'I'
  and it.valor_unitario > it.valor_atual_colecao
  and it.vendedor_id = vend.id
  ) as caixa_mais_doc
, (select sum(it.quantidade * (coalesce(it.valor_atual_colecao,0) - coalesce(it.valor_unitario,0)))
  from itens_doc_entradas_saidas it
  join doc_entradas_saidas doc on doc.id = it.documento_id
  where doc.situacao_documento = 'I'
  and it.valor_unitario < it.valor_atual_colecao
  and it.vendedor_id = vend.id
  ) as caixa_menos_doc
from vendedores vend
join pessoas pess on pess.id = vend.id
join caixas cx on cx.id = vend.conta_fluxo_id
where pess.nome_completo = 'ALESSANDRO FALLER'
) q