我正在尝试创建一个sql查询,其中显示表中记录的最新或没有“dateofspecimencollection”。下面我有两张表,分别是“拭子”和“联系人跟踪头”。
SELECT CTH.AutoID, CTH.Firstname, CTH.Lastname, SW.DateOfSpecimenCollection
FROM ContactTracingHeader AS CTH LEFT JOIN Swab AS SW ON CTH.AutoID = SW.PatientNo
WHERE SW.DateOfSpecimenCollection = (SELECT FIRST(DateOfSpecimenCollection)
FROM Swab ORDER BY DateOfSpecimenCollection ASC);
我试图输出的是,当“swab”表中的一个用户输入多个相同的“patientno”时,它将只显示一个“patientno”记录,其中包含最新的“dateofspecimencollection”及其“firstname”和“lastname”,并且还将“contacttracingheader”表中没有“dateofspecimencollection”的某个患者的记录输出到“swab”表,这也是我使用左连接的原因。我很抱歉,因为我是sql ms access的初学者,而且由于我的英语不好和重复的问题,我的解释也不好。提前谢谢!
这是sql的可视化表示:
表contacttracingheader:
|AutoID|Firstname|Lastname|
1 John Smith
2 Felix James
台拭子:
|PatientNo|DateOfSpecimenCollection|
1 07/21/2020
1 07/22/2020
1 08/01/2020
我尝试进行的查询输出:
|AutoID|Firstname|Lastname|DateOfSpecimenCollection|
1 John Smith 08/01/2020
2 Felix James (Blank)
因为“费利克斯·詹姆斯”在表拭子中没有任何记录,所以他的“样本收集日期”是空的或者什么都没有。
1条答案
按热度按时间7kqas0il1#
可以用子查询替换结果集中的任何列。用它来获取最新信息。您真正的查询是关于人的,所以请从主查询中选择。
如果您只想包括有一个或多个拭子的患者,请添加以下内容: