我需要根据诊所访问情况建立患者人群。此人群的资格标准(筛选)是在评估年的6周内进行3次访问。我如何编码?如何在一段时间(6周)内发现3次或多次事件?
-1
A
回答
2
DECLARE @Records TABLE (ptID INT, date DATE)
INSERT INTO @Records VALUES
(1, '2016-01-01')
,(1, '2016-01-05')
,(1, '2016-02-01')
,(1, '2016-10-01')
,(2, '2015-12-01')
,(2, '2015-12-10')
,(2, '2015-12-31')
,(2, '2016-01-01')
,(2, '2016-01-05')
,(2, '2016-03-05')
,(3, '2016-01-01')
,(3, '2016-02-01')
,(3, '2016-03-01')
,(3, '2016-04-01')
,(3, '2016-05-01')
,(3, '2016-06-01')
,(3, '2016-07-01')
,(3, '2016-08-01')
select a.ptID , a.date
from @Records a
join @Records b
on a.ptID = b.ptID
and datediff(wk, a.date, b.date) <= 6
and datediff(wk, a.date, b.date) > 0
and DATEPART(yy, a.date) = DATEPART(yy, b.date)
group by a.ptID, a.date
having count(*) >= 2
1
狗仔队值得将表与自身进行比较的所有功劳。我只是在这里改进他的比较。
DECLARE @Records TABLE (
PatientID INT
,VisitDate DATE
)
INSERT INTO @Records VALUES
(1, '2016-01-01')
,(1, '2016-01-05')
,(1, '2016-02-01')
,(1, '2016-10-01')
,(2, '2015-12-01')
,(2, '2016-01-01')
,(2, '2016-01-05')
,(2, '2016-03-05')
;WITH SixWeeks
AS (
SELECT a.PatientID AS PID1, a.VisitDate AS Date1,
b.PatientID AS PID2, b.VisitDate AS Date2,
DATEDIFF(dd, a.VisitDate, b.VisitDate) AS DD
FROM @Records a
JOIN @Records b
ON a.PatientID = b.PatientID
AND DATEDIFF(dd, a.VisitDate, b.VisitDate) <= 42
AND DATEPART(yy,a.VisitDate) = '2016'
WHERE EXISTS (SELECT * FROM @Records WHERE (VisitDate > a.VisitDate AND VisitDate < b.VisitDate))
)
SELECT PID1 FROM SixWeeks
GROUP BY PID1
+0
不得不调整我的答案,但对我的答案中的数据他们将有2个错误。感谢测试表。 – Paparazzi
相关问题
- 1. Video.JS - 多次事件触发精确时间一次
- 2. 如何仅在一段时间内触发一个Javascript事件并在一段时间内没有再次触发Javascript事件?
- 3. 如何在一段时间内多次打开钱箱?
- 4. 如何在3次或更少的点击次数内将多个事件发送到Outlook 2003日历?
- 5. 页面内容 - 事件发射多次
- 6. 在事件发生时移位一次
- 7. iOS在一次给定时间允许一次触摸事件
- 8. 停止函数在一段时间内多次运行
- 9. 事件触发多次
- 10. EditingControlShowing事件触发多次
- 11. ViewModel事件多次触发
- 12. 一次引发FileSystemWatcher的多个事件
- 13. 带有多个事件的jQuery函数一次发生一次
- 14. 每隔一段时间自动点击一次onclick事件
- 15. JQuery事件在加载时触发一次,而不是再次
- 16. 一段时间内坐标周围的事件列表?
- 17. 只发一次事件?
- 18. 的preg_replace - 更换出现3次或更多次
- 19. 事件多次触发,但代码只能执行一次
- 20. 在UpdatePanel中多次触发pageLoad事件
- 21. 在OpenNETCF.IO.FileSystemWatcher中发生多次事件
- 22. jQuery如何让一个事件触发一次只触发一次div
- 23. jQuery触发器事件触发多次
- 24. 如何确保一个函数在一段时间内只被调用一次?
- 25. 在进程内每隔一段时间执行一次任务
- 26. ASP.NET - Global asax在一段时间内重置一次
- 27. 发现无:字段在表中出现两次或两次以上
- 28. 在长时间段内进行多次检查UITableView
- 29. 角度事件只能触发一次触发一次
- 30. 如何在JavaScript或jQuery中禁用一段时间的事件
你有什么试过的?你的表格模式是什么?定义“星期”(星期日至星期六?)和“评估年”(公历年,VA预算年,或任何365.25个连续日期?)。提示:使用合适的软件(MySQL,Oracle,DB2,...)和版本(例如, '的SQL服务器2014'。语法和功能的差异往往会影响答案。 – HABO