查询或SQL以返回具有一个唯一列的多个列

时间:2013-11-04 14:47:08

标签: sql ms-access-2007

我正在使用MS Access 2007,其查询包含以下列: PATIENT_NUMBER DATE_OF_VISIT BMI

查询包含每个PATIENT_NUMBER的多个DATE_OF_VISITS(带有关联的BMI)。我一直在尝试使用SQL给我一个重复列表,列出了最近访问日期和访问时的BMI。

到目前为止,我可以获得每位患者最近一次就诊日期的清单,但是当我尝试获得BMI时,我开始接受多个患者病例(因为他们的BMI随时间波动)

1 个答案:

答案 0 :(得分:1)

包含您在问题中尝试的任何查询总是有帮助的。我想你需要这样的东西:

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;

这假设同一患者没有重复日期。如果是这样,您将需要一些其他方法来消除歧义。