0

我有 2 个如下表

workitem

workId WorkName Status
1      xyz      16
2      abc      16
3      mnc      16

WorkItemTrack
TrackID  workId   Status
1        1        3
2        1        5
3        1        9
4        2        5
5        2        9
6        3        3 
7        3        9

对于 WorkItemTrack 表中的每个“workId”,状态应设置为 3,5 和 9。在上述情况下,对于 workId 2 和 3,“状态”3 和 5 分别缺失。

在上述“workId”2 和 3 的 WorkItemTrack 表中,分别缺少状态 3 和 5。在上述情况下如何找到这两条记录

4

1 回答 1

0

这个应该可以的。

Select * FROM WorkItem 
WHERE WorkID Not in 
(
  SELECT Distinct WIT.WorkID 
  FROM WorkItemTrack WIT
       JOIN WorkItemTrack WIT1 ON (WIT.WorkID = WIT1.WorkID) AND (WIT1.Status=5)
       JOIN WorkItemTrack WIT2 ON (WIT.WorkID = WIT2.WorkID) AND (WIT1.Status=9)
  WHERE WIT.Status=3
)
于 2012-12-19T04:38:56.443 回答