【发布时间】:2018-10-06 13:54:44
【问题描述】:
我正在尝试加入 MS ACCESS 中的表。 有问题的表是 PatientDB 和 DailyAssessment。
PatientDB 表包含主键 Patient_UID。
DailyAssessment 表包含主键 Assessment_UID。 它还包含一个 Patient_UID 字段,该字段链接到数据库关系中的 PatientDB。
我想要实现的是:
从 PatientDB 表中选择所有符合条件的记录:Patient_Active = TRUE。
对于每条活动记录,我想检索 DailyAssessments 表中的最新条目。 到目前为止,我已经尝试通过使用来实现这一点:
Max(Assessment_UID) As MaxOfAssessment_UID
然后使用此值尝试加入一个查询,该查询返回 DailyAssessment 表中的其他值。
SQL 如下所示:
SELECT PatientDB.Patient_UID,
Max(DailyAssessment.Assessment_UID) AS
MaxOfAssessment_UID,
qryAssessmentData.Assessment_Date,
qryAssessmentData.Assessment_Time,
qryAssessmentData.Rescue_Analgesia, qryAssessmentData.
[Review By], qryAssessmentData.Assessment_Grade,
qryAssessmentData.Assessment_Notes
FROM (PatientDB INNER JOIN DailyAssessment ON
PatientDB.Patient_UID = DailyAssessment.Patient_UID)
INNER JOIN qryAssessmentData ON MaxOfAssessment_UID =
qryAssessmentData.Assessment_UID
GROUP BY PatientDB.Patient_UID,
qryAssessmentData.Assessment_Date,
qryAssessmentData.Assessment_Time,
qryAssessmentData.Rescue_Analgesia, qryAssessmentData.
[Review By], qryAssessmentData.Assessment_Grade,
qryAssessmentData.Assessment_Notes;
但是我得到一个 JOIN expression not supported 错误,它突出显示:'JOIN qryAssessmentData ON MaxOfAssessment_UID = qryAssessmentData.Assessment_UID'。
有没有人知道如何实现这一点 - 更简单的方法还是我做错了什么?我对 SQL 有相当基本的了解,因此欢迎提出任何建议!
非常感谢。
【问题讨论】:
-
您说您有两个表,但您的查询引用了三个。
-
看起来不错,但我可以看到其中有一些语法错误。例如,我不认为 (FROM 周围的括号是必要的。其次,根据你的问题的描述,我认为你不想 GROUP BY 超过 UID 和日期,因为它会给你这些的外部产品列。
-
只有两个表,但提到的第三件事 (qryAssessmentData) 是一个单独的查询,它只返回 DailyAssessment 表中的所有数据字段。我这样做是为了尝试减少原始 SQL 的长度。
标签: sql ms-access-2007