我们有一个患者数据库,显示他们对我们办公室的各种访问的详细信息,例如他们在访问期间的体重.我想生成一个报告,该报告根据访问日期与患者首次访问之间的差异返回访问(表格中的一行),该访问是可能的最大值但不超过X天数.
那令人困惑,所以让我试一试.假设我有下表patient_visits
:
visit_id | created | patient_id | weight ---------+---------------------+------------+------- 1 | 2006-08-08 09:00:05 | 10 | 180 2 | 2006-08-15 09:01:03 | 10 | 178 3 | 2006-08-22 09:05:43 | 10 | 177 4 | 2006-08-29 08:54:38 | 10 | 176 5 | 2006-09-05 08:57:41 | 10 | 174 6 | 2006-09-12 09:02:15 | 10 | 173
在我的查询中,如果我想要将此报告运行"30天",我会希望将该行返回到哪里visit_id = 5
,因为它是未来28天,而下一行是未来35天,这太多了.
我已经尝试过各种各样的事情,比如将表连接到自身,或者在WHERE
子句中创建子查询以尝试返回created
WHERE等于或小于的最大值created + 30 days
,但我似乎不知所措.这点.作为最后的手段,我可以将所有数据拉入PHP数组并在那里构建一些逻辑,但我真的不愿意.
更大的图景是:该数据库有大约5,000名患者,每个患者都有任意数量的办公室访问.我想建立一份报告,告诉我从第一次就诊到X天的所有患者的平均等待损失是什么(即每个患者第一次就诊的X天,而不是任意的X天期间).我希望如果我能解决上述问题,我将能够完成其余工作.