2011-09-13 73 views
1

我有一個TBLA的SQL Server:更新列

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 

我想根據與「失敗」來填充狀態: 代碼「A」和「B」都應該存在每場比賽號碼。對於001,002,003,A和B都應該存在。如果沒有,則將整個匹配失敗。預期表格:

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

如果有隻與V同樣是可以接受的在後,其他子查詢一個添加額外的相交附加代碼一個小數目。 – alistair

+0

我可能已經編輯了某人的評論......對此表示歉意......仍然是一個溢出的新手。 – alistair

+0

+1好看又簡單。我會以某種方式彙總整個事情,並使它比需要的更加複雜。 –