October 15, 2010 at 9:36 am
Hello SQL Gods!
I inherited this report. I just started to learn SQL, and it’s a way above my head. I need to fix the query so that “mwlApprovalStatus.StatusDateTime” is selecting the dates with the PA-APPLREC Code, which it is already doing.
But I also need a field it to give me the date with the StatusMWcode = RECEIVED Date. And call it DC:RecDate.
Right now it’s only pulling the earliest date per LoanApp_ID
thanks for the help
Sample Data
LoanApp_ID______StatusMWCode_______StatusDateTime
A1737............... ..APPROVED.................3/5/10
A1737..................SCHEDULED................ 3/12/10
A1737..................PA-APPRV............... 1/20/10
A1737..................PA-APPLREC...............1/12/10
A1737................. SUBMITTED............... 3/5/10
A1737................. FUNDING...................3/17/10
A1737..................SUBMITTED................. 2/25/10
A1737..................Received....................2/17/10
A1737...................CLOSED....................4/12/10
So it should look like this
LoanApp_ID: .........PA-APPLREC Date ......DC:RECDATE
A1737..................... 1/12/10..................2/17/10
The Existing Query
SELECT
mwlLoanData.LoanProgramName, mwlLoanApp.LoanNumber,
CONVERT(varchar(10), MIN(mwlApprovalStatus.StatusDateTime),101) AS StatusDateTime,
MIN(mwlLoanApp.CurrentStatus) AS CurrentStatus,
MIN(mwlLoanApp.DecisionStatus) AS DecisionStatus,
CONVERT(varchar(10), MIN(mwlAS.StatusDateTime),101) AS [PA-APPLREC Date],
--DATEDIFF(day, MIN(mwlApprovalStatus.StatusDateTime), MIN(mwlAS.StatusDateTime)) AS [Diff],
MIN(mwlAS.StatusMWCode) AS StatusMWCode,
MIN(mwlLoanData.NoteRate) AS NoteRate,
MIN(mwlLoanData.BaseNoteAmt) AS BaseNoteAmt,
MIN(mwlLoanApp.OriginatorName) AS OriginatorName,
MIN(mwlLoanApp.LockDate) AS LockDate
FROM mwlLoanData AS mwlLoanData INNER JOIN
mwlLoanApp AS mwlLoanApp ON mwlLoanData.ObjOwner_ID = mwlLoanApp.ID INNER JOIN
mwlApprovalStatus AS mwlApprovalStatus ON mwlApprovalStatus.LoanApp_ID = mwlLoanApp.ID LEFT JOIN
mwlApprovalStatus AS mwlAS ON mwlApprovalStatus.LoanApp_ID = mwlAS.LoanApp_ID
AND mwlAS.StatusMWCode = 'PA-APPLREC'
GROUP BY mwlLoanData.LoanProgramName, mwlLoanApp.LoanNumber
ORDER BY mwlLoanData.LoanProgramName, mwlLoanApp.LoanNumber
October 15, 2010 at 9:52 am
Does this give you what you want?
DECLARE @test TABLE (LoanApp_ID varchar(10), StatusMWCode varchar(20), StatusDateTime datetime);
INSERT INTO @test
SELECT 'A1737','APPROVED','3/5/10' UNION ALL
SELECT 'A1737','SCHEDULED','3/12/10' UNION ALL
SELECT 'A1737','PA-APPRV','1/20/10' UNION ALL
SELECT 'A1737','PA-APPLREC','1/12/10' UNION ALL
SELECT 'A1737','SUBMITTED','3/5/10' UNION ALL
SELECT 'A1737','FUNDING','3/17/10' UNION ALL
SELECT 'A1737','SUBMITTED','2/25/10' UNION ALL
SELECT 'A1737','Received','2/17/10' UNION ALL
SELECT 'A1737','CLOSED','4/12/10';
SELECT LoanApp_ID,
col2 = MAX(CASE WHEN StatusMWCode = 'PA-APPLREC' THEN StatusDateTime ELSE NULL END),
col3 = MAX(CASE WHEN StatusMWCode = 'Received' THEN StatusDateTime ELSE NULL END)
FROM @test t1
GROUP BY LoanApp_ID;
Wayne
Microsoft Certified Master: SQL Server 2008
Author - SQL Server T-SQL Recipes
October 15, 2010 at 10:06 am
Thanks for the help.
results are
LoanAPP-IP---------- 2COL ----------------Col3
A1737----------------2010-01-12--------2010-02-17
I don't know how I would use this in my query?
Viewing 3 posts - 1 through 3 (of 3 total)
You must be logged in to reply to this topic. Login to reply