我的设置是我有两个表,Study 和 Activity_History。活动以研究为基础,因此存在 1:many 关系。
我希望能够在 Activity_History 表上运行 SQL 查询,这将为我提供活动和之前运行的活动。我目前有这个:
SELECT
*
FROM Activity_History AS A1
LEFT JOIN Activity_History AS A2
ON A2.Parent_Study_ID =
(
SELECT TOP 1 Parent_Study_ID
FROM Activity_History AS A3
WHERE A3.Parent_Study_ID = A1.Parent_Study_ID
AND A3.Activity_Date < A1.Activity_Date
ORDER BY Activity_Date DESC
)
这是行不通的。发生的事情是它拉查询的 Activity_Date 方没有任何效果,它只返回每行的降序日期顺序的第一个匹配的 Activity_Date。我认为这是因为在我的子查询中我在 where 中使用 Activity_Date,但这不在子查询选择中。
谢谢你的帮助!