Although ... as I replied to arnelgp .. when I do a sum(credit) using the sql of the query, I get the correct figure:
select sum(credit)
from (
SELECT customers.company,
customers.id,
customers.custaccno,
customers.address1,
customers.address2,
customers.address3,
customers.address4,
a.customerid,
a.trntype,
a.trndate,
a.docid,
a.refno,
Iif(a.trndate > Date() - 30, 'Current',
Iif(a.trndate BETWEEN
Date() - 59 AND Date() - 30, '30', Iif(
a.trndate BETWEEN Date() - 89 AND Date()
- 60, '60', Iif(
a.trndate BETWEEN Date() - 119 AND Date(
) - 90, '90', Iif(
a.trndate <= Date()
- 120, '120'))))) AS age,
Round(a.debit, 2) AS debit,
Round(a.credit, 2) AS Credit,
trntype & ' ' & refno AS Description,
Date() AS joinkey,
Nz(a.paidind, '0') AS PaymentId
FROM (SELECT customerid,
'Opening Balance' AS trntype,
openbaldate AS trndate,
'' AS docid,
'' AS refno,
Iif(openbal < 0, openbal * -1, 0) AS debit,
Iif(openbal >= 0, openbal, 0) AS credit,
'0' AS paidind
FROM t_openbal
WHERE openbal <> 0
UNION
SELECT t_refunds.customerid,
t_refunds.referencedescr,
t_refunds.refunddate,
t_refunds.id,
'' AS refno,
0 AS debit,
t_refunds.amount AS credit,
'0' AS paidind
FROM t_refunds
LEFT JOIN t_openbal
ON t_refunds.customerid = t_openbal.customerid
WHERE t_refunds.refunddate >= openbaldate
OR Nz(openbaldate, 0) = 0
UNION
SELECT t_payments.customerid,
'Payment - Thank you' AS expr1,
t_payments.paymentdate,
t_payments.ourrefno AS docid,
t_payments.custrefno,
0 AS debit,
Round(t_payments.paymentamount, 2) AS credit,
Iif(Nz(invoice, 0) <> 0, t_payments.id, '0') AS paidind
FROM t_payments
LEFT JOIN t_openbal
ON t_payments.customerid = t_openbal.customerid
WHERE paymentdate >= openbaldate
OR Nz(openbaldate, 0) = 0
UNION
SELECT q_cnpercustomer.customerid,
'Credit Note',
creditnotedate,
'CN' &creditnoteid,
referenceno AS refno,
0 AS debit,
total AS credit,
'0' AS paidind
FROM q_cnpercustomer
LEFT JOIN t_openbal
ON q_cnpercustomer.customerid = t_openbal.customerid
WHERE ( creditnotedate >= openbaldate
OR Nz(openbaldate, 0) = 0 )
AND NOT EXISTS (SELECT invoiceno
FROM q_invoicepercustomer
WHERE Nz(invoiceno, 0) = Nz(originalinvoice, 0)
AND Nz(q_cnpercustomer.customerid, 0) = Nz
(
q_invoicepercustomer.customerid, 0))
UNION
SELECT customerid,
expr1,
custorderdate,
expr2,
referenceno,
debit,
credit,
pd
FROM (SELECT q_invoicepercustomer.customerid,
'Invoice' AS expr1,
q_invoicepercustomer.custorderdate,
'IN' &invoiceno AS expr2,
q_invoicepercustomer.referenceno,
q_invoicepercustomer.total AS debit,
0 AS credit,
Nz(paidind, '0') AS pd,
Nz(q_cnpercustomer.originalinvoice, 0) * 100 AS originv
FROM (q_invoicepercustomer
LEFT JOIN t_openbal
ON q_invoicepercustomer.customerid =
t_openbal.customerid)
LEFT JOIN q_cnpercustomer
ON Nz(q_invoicepercustomer.invoiceno, 0) = Nz(
q_cnpercustomer.originalinvoice, 0)
AND Nz(q_cnpercustomer.customerid, 0) = Nz(
q_invoicepercustomer.customerid, 0)
WHERE ( custorderdate >= openbaldate
OR Nz(openbaldate, 0) = 0 )
AND invoiceno <> '')
WHERE originv = 0) AS a
INNER JOIN customers
ON a.customerid = customers.id
WHERE Nz(a.paidind, '0') = 0
and customerid = 634
)