我有一个表Issues
,我需要从中获取数据。我将问题表与另一个名为IssueActivities
. 因此,对于 IssueID 的每个实例,可能有 1 到多个 IssueActivity。IssueActivities
表中有一个名为的字段,Notes
它是 datatype text
。我正在尝试选择一个不同的 IssueID 列表,其中 Notes 字段不包含 2 个特定字符串。
这是我的 SQL:
SELECT DISTINCT i.IssueID
FROM Issues i
INNER JOIN IssueActivities ia ON i.IssueID = ia.IssueID
WHERE i.IssueStatusID = 2 --Closed issues only
AND (PATINDEX('%Pending DR%', ia.Notes) < 1 AND PATINDEX('%Pending E%', ia.Notes) < 1)
此 sql 的问题在于它返回具有该条件的问题的 IssueID,因为一个问题可以有许多IssueActivities,因此并非所有行都包含该条件。那有意义吗?这是一个简单的例子:
问题表
IssueID | IssueStatusID
-----------------------
1700 2
1701 2
问题活动表
IssueActivityID | IssueID | Notes
---------------------------------
1 1700 Issue Entered
2 1700 Sub Status changed from New to In Progress
3 1700 Sub Status changed from In Progress to Pending DR
4 1701 Issue Entered
5 1701 Issue Assigned
6 1701 Sub Status changed from New to Closed
因此,从上表中,我只想获得问题 1701,因为属于它的所有问题活动,它们都不包含我正在使用的标准。
任何帮助是极大的赞赏。