Hi,
Please use the below query to get latest settled transaction for a given invoice:
SELECT
CustInvJour.INVOICEID
,CustInvJour.[INVOICEACCOUNT]
,CustInvJour.[INVOICINGNAME]
,CustInvJour.DUEDATE
,CustInvJour.[CREATEDDATETIME]
,CustSettlement.[SETTLEAMOUNTREPORTING]
,CustSettlement.TRANSDATE
,CustInvJour.[INVOICEAMOUNT]
,CustInvJour.DUEDATE
,CustInvJour.[PAYMENT]
,CustInvJour.[INVOICEAMOUNTMST]
FROM CUSTINVOICEJOUR as CustInvJour
join CustTrans as Trans
on Trans.Invoice = CustInvJour.InvoiceId
and Trans.AccountNum = CustInvJour.InvoiceAccount
and Trans.TransDate = CustInvJour.InvoiceDate
and Trans.Voucher = CustInvJour.LedgerVoucher
join CustSettlement
on CustSettlement.TransCompany = Trans.dataAreaId
and CustSettlement.TransRecId = Trans.RecId
and CustSettlement.AccountNum = Trans.AccountNum
WHERE [CUSTSETTLEMENT].DUEDATE = CustInvJour.DUEDATE
AND [CUSTSETTLEMENT].CREATEDDATETIME>'2016-01-01'
AND CustInvJour.INVOICEID = 'XYZ%'
and Trans.TRANSTYPE = 8
and CustSettlement.TRANSDATE =
(select max(CustSet2.TRANSDATE) from CustSettlement CustSet2
where CustSet2.TransCompany = CustSettlement.TransCompany
and CustSet2.TransRecId = CustSettlement.TransRecId
and CustSet2.AccountNum = CustSettlement.AccountNum)
TransType: 8 refers to customer.
Thanks,
Chaitanya Golla