Confesso que sou novato em banco de dados. E com isso preciso por favor criar uma consulta em banco para puxar os pagamentos feito em cheque e cartão de credito. Tentei, porem da erro na que informo as datas de compensação.
Segue o script.
SELECT DISTINCT
mprod.codigo AS codProduto,
mprod.totalfinal,
mpm.valor,
sum(pmp.valorpago),
mprod.situacao,
mpar.datavencimento,
rp.data AS datapagamento,
pc.codigoplanocontas,
pc.nome AS nomePlanoContas,
mprod.anoreferencia,
mprod.descricao AS descricaoMovProduto,
p.nome AS pessoa,
p.codigo AS codPessoa,
cat.nome AS categoria,
array_to_string(array(select telefone.numero from telefone where telefone.pessoa = p.codigo), ', ') as telefone
FROM movparcela mpar
INNER JOIN movprodutoparcela mpp ON mpar.codigo = mpp.movparcela
INNER JOIN movproduto mprod ON mpp.movproduto = mprod.codigo
LEFT JOIN movprodutomodalidade mpm ON mprod.codigo = mpm.movproduto
LEFT JOIN movpagamento mpag ON mpag.recibopagamento = mpp.recibopagamento
LEFT JOIN recibopagamento rp ON rp.codigo = mpag.recibopagamento
LEFT JOIN pagamentomovparcela pmp ON mpag.codigo = pmp.movpagamento
LEFT JOIN rateiointegracao rateio ON (mprod.produto = rateio.produto OR mpm.modalidade = rateio.modalidade)
LEFT JOIN planoconta pc ON rateio.planoconta = pc.codigo
LEFT JOIN pessoa p ON mprod.pessoa = p.codigo
LEFT JOIN cliente c ON c.pessoa = p.codigo
LEFT JOIN categoria cat ON cat.codigo = c.categoria
LEFT OUTER JOIN cheque on mpag.codigo = cheque.movpagamento and cheque.situacao not like 'CA'
LEFT OUTER JOIN cartaocredito on mpag.codigo = cartaocredito.movpagamento AND cartaocredito.situacao not like 'CA'
INNER JOIN formapagamento fp on mpag.formapagamento = fp.codigo and not fp.somentefinanceiro
WHERE mpag.empresa AND p.empresa (
(mpag.datapagamento >= '2017-07-01 00:00:00' AND mpag.datapagamento <= '2017-07-02 23:59:59' AND fp.tipoformapagamento IN ('AV','CD','CC','BB','CO')
OR (cheque.datacompensacao >= '2017-07-01 00:00:00' AND cheque.datacompensacao <= '2017-07-01 00:00:00')
OR (cartaocredito.datacompensacao >= '2017-07-01 00:00:00' AND cheque.datacompensacao <= '2017-07-01 00:00:00')))
AND mprod.situacao <> 'CA'
AND c.codigomatricula = 014467
AND coalesce(mprod.juros, 0) = 0
AND coalesce(mprod.multa, 0) = 0
GROUP BY 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, cat.nome