2011-09-13 23 views
1

を更新するには、私はTBLASQL Serverの: コード "A" と "B" の両方のすべての試合数のために存在している必要があります:列

ID Match Code Status 
1 001 A  
2 001 B 
3 002 A 
4 003 A 
5 003 V 
6 004 A 
7 004 B 

は私がに応じて 'FAIL' でステータスを移入する必要があります。 001,002,003では、A、Bの両方が存在するはずです。そうでなければ、Match全体をFAILします。期待されるテーブル:

ID Match Code Status 
1 001 A NULL 
2 001 B NULL 
3 002 A FAIL 
4 003 A FAIL 
5 003 V FAIL 
6 004 A NULL 
7 004 B NULL 

ありがとう!ここで

答えて

4

あなたが行く:

update [TblA] 
set [Status] = 'FAIL' where 
Match NOT in 
(select match from tblA where Code = 'A' 
intersect 
select match from tblA where Code = 'B'); 
+1

他の後にサブクエリ1で追加の交差を追加するために許容可能であるvのような追加のコードのほんの数がある場合。 – alistair

+0

私は誰かのコメントを編集しているかもしれません...そのことについて...お詫びします。 – alistair

+0

+1素敵でシンプル。私は何とか全部を集めて、必要以上に複雑にしました。 –

関連する問題