查询基准日之后的具体时间范围

Query for specific time range after the basis date

我想查询所有在手术后 6 周到 6 个月内就诊以及在手术后 9 个月到 15-18 个月内就诊的所有患者。

我使用了 DateAdd 函数,但我好像遗漏了什么。

SELECT distinct a.SUBJECTID
FROM [dbo].[XX] a
JOIN [dbo].[HH] b
on a.SUBJECTID = b.SUBJECTID
where b.HH_TOTAL_SCORE is not null 
and (b.HH_EVAL_DATE >= (DATEADD(WEEK,6,a.srg_date)) and b.HH_EVAL_DATE    <= (DATEADD(MONTH,6,A.SRG_DATE)))

我认为您需要再次加入您的 HH table,以便只邀请那些在两个日期范围内进行过术后访问的人。

SELECT distinct a.SUBJECTID
FROM [dbo].[XX] a
JOIN [dbo].[HH] b on a.SUBJECTID = b.SUBJECTID
JOIN [dbo].[HH] c on a.SUBJECTID = c.SUBJECTID
where b.HH_TOTAL_SCORE is not null 
and (b.HH_EVAL_DATE >= (DATEADD(WEEK,6,a.srg_date)) and b.HH_EVAL_DATE    <= (DATEADD(MONTH,6,A.SRG_DATE)))
and (c.HH_EVAL_DATE >= (DATEADD(MONTH,9,a.srg_date)) and c.HH_EVAL_DATE    <= (DATEADD(MONTH,18,A.SRG_DATE)))

请注意,我将您的陈述 "visit from 9 months to 15-18 months after the date of surgery" 解释为仅表示手术日期后 9 到 18 个月的访问。