繁体   English   中英

如何在SQL Server的跟踪表中查找丢失的记录?

[英]How to find the missing records in Track Table in sql server?

我有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分别丢失。 在上述情况下如何找到这2条记录

这应该做到。

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
)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM