asked on
;WITH B1 AS (
SELECT CS.TRANSRECID, CS.TRANSDATE, CS.OFFSETTRANSVOUCHER, CS.ACCOUNTNUM,
CS.SETTLEAMOUNTCUR, CS.CREATEDDATETIME,
CS.OFFSETRECID, CS.RECID, CS.DATAAREAID, CS.CREATEDBY
FROM dbo.CUSTSETTLEMENT CS
WHERE CS.DATAAREAID IN (N'EF', N'CSG')
AND (CS.OFFSETTRANSVOUCHER LIKE N'R-%'
OR CS.OFFSETTRANSVOUCHER LIKE N'P%'
OR CS.OFFSETTRANSVOUCHER LIKE N'P%')
AND CS.CREATEDDATETIME BETWEEN '2018-01-01' AND '2020-01-01'
), B2 AS (
SELECT CSO.OFFSETTRANSVOUCHER, CSO.TRANSRECID, CSO.TRANSDATE,
CSO.ACCOUNTNUM, CSO.SETTLEAMOUNTCUR, CSO.CREATEDDATETIME,
CSO.CREATEDBY, CSO.DATAAREAID, CSO.OFFSETRECID
FROM dbo.CUSTSETTLEMENT CSO
INNER JOIN B1 ON CSO.DATAAREAID = B1.DATAAREAID
AND CSO.TRANSRECID = B1.OFFSETRECID
AND CSO.OFFSETRECID = B1.TRANSRECID
WHERE (CSO.OFFSETTRANSVOUCHER LIKE N'R%'
OR CSO.OFFSETTRANSVOUCHER LIKE N'I%')
)
SELECT B2.OFFSETTRANSVOUCHER AS SettledBy, B1.OFFSETTRANSVOUCHER,
B2.TRANSRECID AS OFFSETRECID,
B1.TRANSRECID, B1.TRANSDATE, B1.ACCOUNTNUM, B1.SETTLEAMOUNTCUR,
B1.CREATEDDATETIME, B1.DATAAREAID, B1.CREATEDBY
INTO #TEMP_COMM
FROM B1
INNER JOIN B2 ON B1.DATAAREAID = B2.DATAAREAID
AND B1.OFFSETRECID = B2.TRANSRECID
AND B1.TRANSRECID = B2.OFFSETRECID
GROUP BY B2.OFFSETTRANSVOUCHER, B1.OFFSETTRANSVOUCHER, B2.TRANSRECID,
B1.TRANSRECID, B1.TRANSDATE, B1.ACCOUNTNUM, B1.SETTLEAMOUNTCUR,
B1.CREATEDDATETIME, B1.DATAAREAID, B1.CREATEDBY
--select *from #TEMP_COMM
;WITH SMT AS (
SELECT B.TRANSRECID,B.OFFSETTRANSVOUCHER,B.ACCOUNTNUM,B.SETTLEAMOUNTCUR,
B.DATAAREAID,CT2.INVOICEPROJECT,CT2.INVOICE,B.TRANSDATE,B.CREATEDDATETIME,B.SettledBy,
CT.CREATEDTRANSACTIONID, CT.PAYMREFERENCE
FROM #TEMP_COMM B
LEFT JOIN CUSTTRANS CT ON CT.DATAAREAID=B.DATAAREAID AND CT.RECID=B.TRANSRECID
LEFT JOIN CUSTTRANS CT2 ON CT2.DATAAREAID=B.DATAAREAID
AND CT2.RECID=B.OFFSETRECID ) as B3