Sql 检查Access中一个表中的日期是否显示在另一个表的范围内

Sql 检查Access中一个表中的日期是否显示在另一个表的范围内,sql,join,ms-access-2007,Sql,Join,Ms Access 2007,我试图在MS Access 2010中创建一个查询,其中我有两个表(患者,幻影),我试图查找幻影表中的日期是否在患者扫描后+/-10天内为患者表上的特定站点获取 “患者”表仅包含站点、患者ID和扫描接收日期 对于每个站点编号,我们必须获得一个幻影。幻影表包含幻影的站点号和接收日期 我想写一个查询,其中Patients表中的site number与Phantoms表中的site number合并,并检查Phantoms的接收日期是否为Patients表中扫描接收日期的+/-7天 我假设两个表中的日

我试图在MS Access 2010中创建一个查询,其中我有两个表(患者,幻影),我试图查找幻影表中的日期是否在患者扫描后+/-10天内为患者表上的特定站点获取

“患者”表仅包含站点、患者ID和扫描接收日期

对于每个站点编号,我们必须获得一个幻影。幻影表包含幻影的站点号和接收日期


我想写一个查询,其中Patients表中的site number与Phantoms表中的site number合并,并检查Phantoms的接收日期是否为Patients表中扫描接收日期的+/-7天

我假设两个表中的日期字段都是
date/Time
类型,如果不是,请告诉我

有两种方法可以让你区分两次约会。一种方法是用一些简单的数学手工检查条件

SELECT Patient.[Patient ID], Patient.Site, Patient.[Scan Recieved], Phantom.[Receive Date]
FROM Patient INNER JOIN Phantom ON Patient.Site = Phantom.[Site Number]
WHERE (((Patient.[Scan Recieved]-Phantom.[Receive Date])<=7 
    AND (Patient.[Scan Recieved]-Phantom.[Receive Date])>=0)) 
OR (((Phantom.[Receive Date]-Patient.[Scan Recieved])<=7 
 AND (Phantom.[Receive Date]-Patient.[Scan Recieved])>=0))
选择患者。[患者ID]、患者.站点、患者。[扫描已接收]、幻影。[接收日期]
从患者内部连接患者上的幻影。站点=幻影。[站点编号]
式中(((患者[扫描接收]-幻影[接收日期]=0))
或((幻影[接收日期]-患者[接收扫描]=0))
另一种可能是使用函数,这会使事情变得更简单

SELECT Patient.[Patient ID], Patient.Site, Patient.[Scan Recieved], Phantom.[Receive Date]
FROM Patient INNER JOIN Phantom ON Patient.Site = Phantom.[Site Number]
WHERE DateDiff("d", Patient.[Scan Recieved], Phantom.[Receive Date]) <=7
选择患者。[患者ID]、患者.站点、患者。[扫描已接收]、幻影。[接收日期]
从患者内部连接患者上的幻影。站点=幻影。[站点编号]

DateDiff(“d”,病人。[扫描收到],幻影。[接收日期])到目前为止,你试过什么吗?您到底希望查询的输出显示什么?