我正在尝试在MS Access 2010中创建一个查询,其中我有两个表(患者,幽灵),我正在尝试查找Phantoms表中的日期是否为患者表中的特定网站获取+ / - 病人扫描10天。
患者表只有站点,患者ID和扫描接收日期。
对于每个站点编号,我们必须获得一个幻像。 Phantoms表有站点编号和幻像的接收日期。
我想写一个查询,其中来自Patient表的站点号加入Phantoms表中的站点号,并且它检查Phantom的接收日期是从扫描接收日期开始+/- 7天在患者表中。
答案 0 :(得分:0)
我假设两个表中的日期字段都是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))
另一种可能性是使用DateDiff函数,这使事情变得更简单。
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
"d"
参数将输出其他两个参数之间的天数。