我的表中有3列重要的列,每列都存储一个日期。
ID Inpatient_date ER_date
我试图在看到医院(Inpatient_date)后的30天内找到哪些人(ID)去了ER(ER_date)。我需要能够查看inpatient_date列中的每个日期,并与ER_date列中的每个日期进行比较。然后从这些结果中,通过使ER_date的行在30天内进一步缩小范围,并且包含Inpatient_date的行具有相同的人员ID。
我对如何做到这一点感到茫然。
答案 0 :(得分:1)
您可以使用exists
:
select t.*
from t
where exists (select 1
from t t2
where t2.er_date > t.inpatient_date and
t2.er_date < t.inpatient_date + interval 30 day
);
我将您的问题解释为&#34;在住院后1-30天访问ER&#34;。如果您要查看之前30天或之前和之后30天,您可以调整子查询中的条件。