我正在尝试找到每个ID的最近日期。主列表(T1)上的每个ID可能有多个日期,对于每个我想要在单独的表(T2)上返回最接近的日期。
主要表我需要最接近的日期;
T1
PID ES Date
16 03/09/2009
17 29/07/2009
17 26/01/2012
18 19/02/2010
每个ID有多个条目的表
T2
SERVICEID PID APPOINTMENT
14 16 03/09/2009
14 16 14/09/2009
14 16 21/09/2009
20 17 22/07/2009
20 17 06/08/2009
20 17 22/10/2009
20 17 24/11/2009
20 17 05/01/2010
38402 17 25/01/2012
38402 17 21/02/2012
38402 17 03/04/2012
38402 17 08/05/2012
17 18 01/10/2009
4982 18 16/02/2010
6499 18 28/04/2010
6499 18 12/05/2010
6499 18 16/06/2010
6499 18 15/07/2010
我想要回归 的 T3
PID ES Date SERVICEID APPOINTMENT
16 03/09/2009 14 03/09/2009
17 29/07/2009 20 22/07/2009
17 26/01/2012 38402 25/01/2012
18 19/02/2010 6499 28/04/2010
我看过一个数字,如果使用DATEDIFF,ABS,MIN等同样的问题,但我无法得到适合我想要的东西。我正在使用MSAccess 2010。
答案 0 :(得分:0)
进行加入,使用WHERE
仅返回最低日期。
select t1.PID, t1.ES, t1.Date,
t2.SERVICEID, t2.APPOINTMENT
from t1 join t2 on t1.pid = t2.pid
where t2.date = (select min(date) from t2
where date > t1.date
and pid = t1.pid)