You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
CollectionsLetters/dl_backtest.sql

49 lines
2.8 KiB

DECLARE @i INT = 0;
DECLARE @testDate DATE = '03/01/2022'
WHILE @i < 30
BEGIN
SELECT * FROM Application as AppMain
/*
This query is designed to pull in applications that require a decline letter to be sent to the customer
through OSG. They should be added to the CollectionsLetter file sent to OSG.
*/
-- This left join pulls in the most recent syndication information | AppSynA = ApplicationSyndication table
LEFT JOIN (SELECT AppSynA.AppKey, AppSyndicationStatusId FROM AppSyndication as AppSynA
LEFT JOIN
( --Here we select only the most recent record date for each record so that the
--left join above does not pull multiple syndication ids for each app
SELECT AppKey, MAX(RecordUpdateDate) as NewRec -- NewRec = Newest Syndication Record Date
FROM [LEAFCore].[dbo].[AppSyndication]
GROUP BY [dbo].[AppSyndication].AppKey) as NewestSynd on AppSynA.AppKey=NewestSynd.AppKey
WHERE AppSynA.RecordUpdateDate = NewestSynd.NewRec
) as AppSynRec on AppMain.AppKey=AppSynRec.AppKey
-- This left join pulls in the most recent Decision code and the date that it occurred | ADCH == AppDecisionCodeHistory
LEFT JOIN (SELECT ADCH.AppKey, HistoryDate, DecisionCodeKey as CurrentDecisionCode FROM AppDecisionCodeHistory as ADCH
LEFT JOIN
( -- Here we select only the most recent record date for each record so that the
SELECT AppKey, Max(HistoryDate) as DecDate -- DecDate = Decision Date
FROM AppDecisionCodeHistory
GROUP BY AppKey) AS DecNewRec on ADCH.AppKey=DecNewRec.AppKey -- DecNewRec = Newest Decision Record
WHERE ADCH.HistoryDate = DecNewRec.DecDate
) as AppDecRec on AppMain.AppKey = AppDecRec.AppKey -- AppDecRec = ApplicationDecisionRecord
-- This left join pulls in the business type using the customer key from the main app table
LEFT JOIN (SELECT CustomerKey, BusinessTypeID FROM Customer) as CustInfo on AppMain.CustomerKey=CustInfo.CustomerKey
-- We can limit the query so that it's a bit faster
WHERE AppMain.CreateDate > '2022-01-01 00:00:01.000'
-- Only get apps declined between 13 & 14 days ago
AND HistoryDate BETWEEN DATEADD(day,-14,GETDATE()) AND DATEADD(day,-13,GETDATE())
-- Only get apps that are declined (6) or auto-rejected (17)
AND CurrentDecisionCode in (6,17)
-- Only pull apps with no syndication record or have been rejected for syndication
AND (AppSyndicationStatusId is NULL OR AppSyndicationStatusId = 3)
-- Only pull Small Business Finance Group (137505)
AND (AppMain.ProductLineKey = '137505' OR AppMain.PromotionKey = 183172)
AND (
-- Only pull apps that are for customers, promotion Penskee (183172)
CustomerApp = 1 OR AppMain.PromotionKey = 183172
)
SET @i = @i + 1;
END;