-2
我有我的日期值的问题,日期字段的数据类型是日期时间,但在同一时间我在48小时内获得相同的ID很多记录。我们的目标仅仅是当患者在48内访问医院时才返回一条记录。例如,如果患者A在2014年1月1日去ER并再次返回到1/2/2014,那么我只想显示第一次访问哪个1/1/2014。我真的相信这个问题是在这条线在48小时内显示一条记录使用sql
AND A.[ADMT_TS] < DateAdd(d, 2, ADMT_TS)
我想我需要做一些转换,以获得正确的值。 这里是我的查询,请不要在我选择陈述之前,我有其他疑问,但我只发布这个部分,我试图得到第一个48小时。
SELECT [ID], [LOCATION], [ADMT_TS]
FROM ERS WHERE RN = 1
UNION ALL
SELECT [ID], [LOCATION], [ADMT_TS]
FROM ERS A
WHERE RN > 1 AND EXISTS (SELECT 1 FROM ERS WHERE RN = 1 AND [ID] = A.[ID])
AND NOT EXISTS(SELECT 1 FROM ERS WHERE RN = 1 AND [ID] = A.[ID] AND A.[ADMT_TS] < DateAdd(d, 2, ADMT_TS))
如果患者在3月1日,和1月4日?你期望看到什么? – 2014-12-03 18:57:32
如果您使用sqlfiddle.com并发布了一些数据,它将会非常有帮助。您确实在寻找每位使用ER的患者的首次发生,是否正确? – Dbloch 2014-12-03 18:58:49
您是仅将日期值存储在ADMT_TS中,还是包含日期和时间值?额外的时间可能会让你烦恼。另外,如何设置/分配“RN”?那里有多余的“1”行吗?该查询没有提供如何将基础数据“融合在一起”的指示。 – 2014-12-03 19:17:08