我正在使用 MS Access 2007 查询,其中包含以下列: PATIENT_NUMBER DATE_OF_VISIT BMI
该查询包含每个 PATIENT_NUMBER 的多个 DATE_OF_VISITS(具有关联的 BMI)。我一直在尝试使用 SQL 为我提供一份不重复的列表,其中包含最近就诊日期和那次就诊时的 BMI 的所有患者。
到目前为止,我可以获得每个患者最近就诊日期的列表,但是当我尝试获得 BMI 时,我开始获得多个患者实例(因为他们的 BMI 会随着时间而波动)
我正在使用 MS Access 2007 查询,其中包含以下列: PATIENT_NUMBER DATE_OF_VISIT BMI
该查询包含每个 PATIENT_NUMBER 的多个 DATE_OF_VISITS(具有关联的 BMI)。我一直在尝试使用 SQL 为我提供一份不重复的列表,其中包含最近就诊日期和那次就诊时的 BMI 的所有患者。
到目前为止,我可以获得每个患者最近就诊日期的列表,但是当我尝试获得 BMI 时,我开始获得多个患者实例(因为他们的 BMI 会随着时间而波动)
It always helps to include any queries that you've tried in the question. I think you need something like this:
select t.PATIENT_NUMBER, t.DATE_OF_VISIT, t.BMI
from t inner join
(select PATIENT_NUMBER, max(DATE_OF_VISIT) as maxdate
from t
group by PATIENT_NUMBER
) tmax
on t.PATIENT_NUMBER = tmax.PATIENT_NUMBER and t.DATE_OF_VISIT = tmax.maxdate;
This assumes that there are not duplicate dates for the same patient. If so, you will need some other method to disambiguate them.