【发布时间】:2020-11-11 12:38:39
【问题描述】:
我正在尝试进行可以选择名称的查询,DateOfSpecimenResult、SwabResult、DateOfReleaseOfResult。这是视觉表示:
表格:ContactTracingHeader
| AutoID | Name |
1 Jason
2 Chris
表:拭子
| PatientNo | DateOfSpecimenCollection | SwabResultID | DateOfReleaseOfResult |
1 05/02/2020 1 05/10/2020
1 06/08/2020 1 06/11/2020
1 07/16/2020 2 07/20/2020
注意:ContactTracingHeader.AutoID = Swab.PatientNo
表格:SwabResult
| AutoID | SwabResult |
1 POSITIVE
2 NEGATIVE
我正在尝试制作的查询输出
| AutoID | Name | DateOfSpecimenCollection | SwabResult | DateOfReleaseOfResult |
1 Jason 07/16/2020 NEGATIVE 07/20/2020
2 Chris (BLANK) (BLANK) (BLANK)
注意:Swab.ResultID = SwabResult.AutoID
在这里,我只是想用最新的DateOfSpecimenCollection 显示Name,然后将其用作另外两列SwabResult 和DateOfReleaseOfResult 的参考,并且由于“Chris”没有Swab 表上没有输入,他的记录是空白的,但他的名字和AutoID 仍然出现在表上。 SwabResult 显示 NEGATIVE 或 POSITIVE,具体取决于表 Swab 中的 ID。
到目前为止我所做的是:
SELECT
CTH.AutoID,
CTH.Firstname,
CTH.Lastname,
(SELECT MAX(DateOfSpecimenCollection)
FROM Swab
WHERE Swab.PatientNo = CTH.AutoID
) AS DateOfSpecimenCollection,
Swab.SwabResultID,
Swab.DateOfReleaseOfResult
FROM ContactTracingHeader AS CTH LEFT JOIN Swab ON Swab.PatientNo = CTH.AutoID;
此查询获取最新的 DateOfSpecimenCollection 并输出那些不在 Swab 表中的人,这是正确的,但是它会根据有多少 SwabResult 或 DateOfReleaseOfResult 复制记录.我还尝试了INNER JOIN 表 SwabResult 所以我可以输出SwabResult 而不是 ID,但是它给了我 JOIN Expression not supported 错误。
对于冗长而令人困惑的解释和重复的问题,我深表歉意,因为我正努力在互联网上寻找一些答案。谢谢!
【问题讨论】: