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 がそれぞれ欠落しています。上記の場合、これら 2 つのレコードを見つける方法

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 に答える