Advertisement
Guest User

Grouping patients and showing repeat visits

a guest
Apr 25th, 2012
360
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
T-SQL 0.80 KB | None | 0 0
  1. CREATE TABLE #tmp (ID INT IDENTITY (1,1), PatientID INT, ActualDate DATETIME);
  2.  
  3. INSERT INTO #tmp (PatientID, ActualDate)
  4. SELECT 1, '2012-01-20' UNION ALL
  5. SELECT 1, '2012-02-20' UNION ALL
  6. SELECT 1, '2012-03-20' UNION ALL
  7. SELECT 1, '2011-04-20' UNION ALL
  8. SELECT 2, '2012-04-19' UNION ALL
  9. SELECT 2, '2012-04-20' UNION ALL
  10. SELECT 3, '2012-04-19' UNION ALL
  11. SELECT 3, '2011-04-20' UNION ALL
  12. SELECT 4, '2011-04-20';
  13.  
  14. SELECT PatientID, ActualDate FROM #tmp ORDER BY PatientID, ActualDate;
  15.  
  16. WITH CTE AS
  17. (
  18.     SELECT PatientID, MAX(ActualDate) AS LastVisit
  19.     FROM #tmp
  20.     GROUP BY PatientID
  21. )
  22. SELECT CTE.PatientID, COUNT(1)-1 AS RepeatVisits
  23. FROM CTE INNER JOIN #tmp ON CTE.PatientID = #tmp.PatientID
  24. WHERE ActualDate BETWEEN DATEADD(month, -6, LastVisit) AND LastVisit
  25. GROUP BY CTE.PatientId;
  26.  
  27. DROP TABLE #tmp;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement