加入具有日期范围的表格

时间:2012-04-30 15:44:50

标签: sql sql-server-2005

我正在尝试将护理和实验室测试结果放在与日期和时间相关的一行中。护理表有11个特定患者的记录,实验室表有3个特定患者的记录,当我加入他们时,我得到33条记录,我想要11条记录,我尝试左右加入,但结果相同。过程是,如果结果超过异常,护士做一个测试和记录结果然后订购实验室测试,所以护士和实验室测试之间有时间差。

护理表

Patient No NurResult NurDate
1           8.8      4/2/2012 7:50
1          11.9      4/2/2012 11:53
1           8.3      4/2/2012 17:00
1          10.8      4/2/2012 21:42


Lab Table        
Patient No  LabResult   LabDate
1           8           4/2/2012 8:52

查询:

SELECT NUR.PATIENT,NUR.TDVALUE,NUR.TDACTDATE,NUR.TDACTTIME
    ,LT.[RESULT],SF.COLLECTIONDATE,SF.COLLECTIONTIME
FROM [LabLSpecResultTests] LT
INNER JOIN [LabLSpecimenFile] SF 
    ON LT.URN=SF.URN
LEFT OUTER JOIN dbo.NurDocumentedResults NUR
    ON SF.PATIENT=NUR.PATIENT
    AND NUR.TDACTDATE=SF.COLLECTIONDATE
WHERE TDACTDATE='20120402' 

结果应该是

Patient  NurResult      NurDate          LabResult     LabDate
    1         8.8       4/2/2012 7:50    8             4/2/2012 8:52
    1        11.9       4/2/2012 11:53   NULL          4/2/2012 8:52
    1         8.3       4/2/2012 17:00   NULL          4/2/2012 8:52
    1        10.8       4/2/2012 21:42   NULL          4/2/2012 8:52
    1         9.9       4/3/2012 7:56    NULL          4/2/2012 8:52
    1        12.1       4/3/2012 12:03   NULL          4/2/2012 8:52

我得到的是什么

Patient  NurResult  NurDate          LabResult  LabDate
1         8.8       4/2/2012 7:50    8          4/2/2012 8:52
1        11.9       4/2/2012 11:53   8          4/2/2012 8:52
1         8.3       4/2/2012 17:00   8          4/2/2012 8:52
1        10.8       4/2/2012 21:42   8          4/2/2012 8:52
1         9.9       4/3/2012 7:56    8          4/2/2012 8:52
1        12.1       4/3/2012 12:03   8          4/2/2012 8:52

0 个答案:

没有答案