Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- CREATE TABLE #tmp (ID INT IDENTITY (1,1), PatientID INT, ActualDate DATETIME);
- INSERT INTO #tmp (PatientID, ActualDate)
- SELECT 1, '2012-01-20' UNION ALL
- SELECT 1, '2012-02-20' UNION ALL
- SELECT 1, '2012-03-20' UNION ALL
- SELECT 1, '2011-04-20' UNION ALL
- SELECT 2, '2012-04-19' UNION ALL
- SELECT 2, '2012-04-20' UNION ALL
- SELECT 3, '2012-04-19' UNION ALL
- SELECT 3, '2011-04-20' UNION ALL
- SELECT 4, '2011-04-20';
- SELECT PatientID, ActualDate FROM #tmp ORDER BY PatientID, ActualDate;
- WITH CTE AS
- (
- SELECT PatientID, MAX(ActualDate) AS LastVisit
- FROM #tmp
- GROUP BY PatientID
- )
- SELECT CTE.PatientID, COUNT(1)-1 AS RepeatVisits
- FROM CTE INNER JOIN #tmp ON CTE.PatientID = #tmp.PatientID
- WHERE ActualDate BETWEEN DATEADD(month, -6, LastVisit) AND LastVisit
- GROUP BY CTE.PatientId;
- DROP TABLE #tmp;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement