En la query abajxo, necesito hacer con que en el SUM principal, 1º SELECT, haga una subtración del DEVOLUCAO.DEV y no está acontecendo. Será que son los relacionamentos?
Cita:
SELECT
F_PAGTO.TP_F_PAG,
CASE
WHEN
F_PAGTO.TP_F_PAG = 1 THEN 'À VISTA'
WHEN
F_PAGTO.TP_F_PAG = 2 THEN 'CARTÃO'
WHEN
F_PAGTO.TP_F_PAG = 3 THEN 'CHEQUE-PRÉ'
WHEN
F_PAGTO.TP_F_PAG = 4 THEN 'OUTRAS VENDAS'
END "FORMA DE PAGAMENTO",
SUM(NF_PAGTO.VL_PAG)-
COALESCE(DEVOLUCAO.DEV,0) "VALOR"
FROM
TB_SAC_NF_PAGAMENTO NF_PAGTO
INNER JOIN
TB_SAC_FORMA_PAGTO F_PAGTO
ON(NF_PAGTO.CD_F_PAG = F_PAGTO.CD_F_PAG)
INNER JOIN
TB_SAC_NF_CAPEADOR CAP
ON(CAP.NU_NF = NF_PAGTO.NU_NF AND
CAP.NU_CX = NF_PAGTO.NU_CX AND
CAP.SR_NF = NF_PAGTO.SR_NF)
LEFT JOIN
(SELECT
CP.NU_NF,
SUM(CP.VL_BRUTO + CP.VL_DESC_ACR)"DEV"
FROM
TB_SAC_NF_CAPEADOR CP
WHERE CP.SR_NF = 'E2' AND CP.ST_CANC = 0 AND
CP.DT_ENT BETWEEN '29-MAR-2008' AND '29-MAR-2008'
GROUP BY CP.NU_NF) "DEVOLUCAO"
ON(DEVOLUCAO.NU_NF = CAP.NU_NF)
WHERE
CAP.ST_CANC = 0 AND
((CAP.SR_NF = 'D2') OR ((CAP.SR_NF = 'B2') AND
(CAP.CD_CFOP = 6102)))
GROUP BY
F_PAGTO.TP_F_PAG,
DEVOLUCAO.DEV
ORDER BY F_PAGTO.TP_F_PAG
|