pipekit/config/modules/rm30201.sql

85 lines
3.2 KiB
SQL

SELECT * FROM OPENQUERY(usavmsql01, '
SELECT
RTRIM([CUSTNMBR]) AS [custnmbr],
RTRIM([CPRCSTNM]) AS [cprcstnm],
RTRIM([TRXSORCE]) AS [trxsorce],
[DATE1] AS [date1],
[TIME1] AS [time1],
[GLPOSTDT] AS [glpostdt],
[POSTED] AS [posted],
RTRIM([TAXDTLID]) AS [taxdtlid],
RTRIM([APTODCNM]) AS [aptodcnm],
[APTODCTY] AS [aptodcty],
[APTODCDT] AS [aptodcdt],
[ApplyToGLPostDate] AS [applytoglpostdate],
RTRIM([CURNCYID]) AS [curncyid],
[CURRNIDX] AS [currnidx],
[APPTOAMT] AS [apptoamt],
[DISTKNAM] AS [distknam],
[DISAVTKN] AS [disavtkn],
[WROFAMNT] AS [wrofamnt],
[ORAPTOAM] AS [oraptoam],
[ORDISTKN] AS [ordistkn],
[ORDATKN] AS [ordatkn],
[ORWROFAM] AS [orwrofam],
[APTOEXRATE] AS [aptoexrate],
[APTODENRATE] AS [aptodenrate],
[APTORTCLCMETH] AS [aptortclcmeth],
[APTOMCTRXSTT] AS [aptomctrxstt],
RTRIM([APFRDCNM]) AS [apfrdcnm],
[APFRDCTY] AS [apfrdcty],
[APFRDCDT] AS [apfrdcdt],
[ApplyFromGLPostDate] AS [applyfromglpostdate],
RTRIM([FROMCURR]) AS [fromcurr],
[APFRMAPLYAMT] AS [apfrmaplyamt],
[APFRMDISCTAKEN] AS [apfrmdisctaken],
[APFRMDISCAVAIL] AS [apfrmdiscavail],
[APFRMWROFAMT] AS [apfrmwrofamt],
[ActualApplyToAmount] AS [actualapplytoamount],
[ActualDiscTakenAmount] AS [actualdisctakenamount],
[ActualDiscAvailTaken] AS [actualdiscavailtaken],
[ActualWriteOffAmount] AS [actualwriteoffamount],
[APFRMEXRATE] AS [apfrmexrate],
[APFRMDENRATE] AS [apfrmdenrate],
[APFRMRTCLCMETH] AS [apfrmrtclcmeth],
[APFRMMCTRXSTT] AS [apfrmmctrxstt],
[APYFRMRNDAMT] AS [apyfrmrndamt],
[APYTORNDAMT] AS [apytorndamt],
[APYTORNDDISC] AS [apytornddisc],
[OAPYFRMRNDAMT] AS [oapyfrmrndamt],
[OAPYTORNDAMT] AS [oapytorndamt],
[OAPYTORNDDISC] AS [oapytornddisc],
[GSTDSAMT] AS [gstdsamt],
[PPSAMDED] AS [ppsamded],
[RLGANLOS] AS [rlganlos],
[Settled_Gain_CreditCurrT] AS [settled_gain_creditcurrt],
[Settled_Loss_CreditCurrT] AS [settled_loss_creditcurrt],
[Settled_Gain_DebitCurrTr] AS [settled_gain_debitcurrtr],
[Settled_Loss_DebitCurrTr] AS [settled_loss_debitcurrtr],
[Settled_Gain_DebitDiscAv] AS [settled_gain_debitdiscav],
[Settled_Loss_DebitDiscAv] AS [settled_loss_debitdiscav],
[Revaluation_Status] AS [revaluation_status],
[DEX_ROW_ID] AS [dex_row_id]
FROM CHG.dbo.RM30201 t
-- RM30201 has no DEX_ROW_TS (only the RM*0101 pair carries one), so there is
-- no single change stamp: DEX_ROW_ID catches inserts but never moves on an
-- update, and the GLPOSTDT / APFRDCDT window catches restated or back-posted
-- applies. APTODCDT belongs to the apply-TO document, so it lags by weeks and
-- is not a driver; DATE1 has 163 rows dated out to year 6201 and is unusable.
--
-- merge_key is (aptodcty, aptodcnm), so the DELETE clears every apply row for a
-- document -- the pull must therefore be document-grain, not row-grain, or a
-- doc holding two apply rows would lose the sibling the predicate missed.
-- ~16k of 1.13M docs carry more than one row. AK1/AK5 lead on
-- APTODCTY, APTODCNM, so the EXISTS is an index seek.
WHERE EXISTS (
SELECT 1
FROM CHG.dbo.RM30201 c
WHERE c.[APTODCTY] = t.[APTODCTY]
AND c.[APTODCNM] = t.[APTODCNM]
AND ( c.[DEX_ROW_ID] > {rm30201_id}
OR c.[GLPOSTDT] >= ''{rm30201_dt}''
OR c.[APFRDCDT] >= ''{rm30201_dt}'')
)
')