为每个人员ID选择排序表的前2行

时间:2012-01-13 23:14:34

标签: ms-access

我正在使用MS Access 2010开展项目。

患有疾病的人需要与没有患病或控制的两个人相匹配。这两个控件需要尽可能在年龄方面最接近。

我已经匹配了合适的控件,但我正在努力进行查询以选择具有最近出生日期的两个控件(日期差异)给患有该病的人。

(date_difference字段是一个绝对数字,所以即使它们更年轻或更老,这个数字总是正数 - 显然,数字越大表示它们相隔更多年。)

有人可以帮忙吗?

例如......(显然所有名字都已完全组成!)

For example...

我希望查询的结果能够生成以下内容:

output

任何帮助都将受到青睐!

詹姆斯

1 个答案:

答案 0 :(得分:1)

我希望整个表格设置都是虚构的。

SELECT b.id,
       b.disease_id,
       b.disease_surname,
       b.control_id,
       b.control_surname,
       b.date_difference
FROM   controls AS b
WHERE  b.id IN (SELECT TOP 2 id
                FROM   controls a
                WHERE  a.disease_id = b.disease_id
                ORDER  BY date_difference)