2012-12-19 40 views
0

我在WorkItemTrack表2個表像下面如何在sql server的跟蹤表中找到丟失的記錄?

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 

對於每個「workId」的居留制應該設置爲3,5- & 9.在上述情況下爲2 workId 3 &「狀態」 3分別缺少& 5。

在上面的WorkItemTrack表中分別缺少了「workId」和「StatusId」。如何在上述情況下找到這2條記錄

+0

你將需要更徹底地解釋一下。我無法遵循你所問的。例如,定義「Missing」3&5似乎在我所看到的表格中。 – JohnFx

+0

我編輯了這個隊列 – Somashekhar

+0

回答即將出現,但如果需要保持兩個表的內容同步,則可能需要重新考慮該結構。 – JohnFx

回答

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 
) 
+0

謝謝,使用小的更改 – Somashekhar

+0

您需要做什麼更改才能更新其他人的答案? – JohnFx