SQL Server: ОТКЛЮЧЕНИЕ лишних записей - PullRequest
1 голос
/ 27 сентября 2011

У меня есть таблица A (ID int, Match varchar, code char, status = char)

ID  Match code Status
101 123    A
102 123    B
103 123    C
104 234    A
105 234    B
106 234    C
107 234    B
108 456    A
109 456    B
110 456    C

Я хочу заполнить статус с помощью 'FAIL', когда: Для того же соответствия существует код, отличный от(A, B или C) или код существует несколько раз.Другими словами, код может быть только (A, B, C), и он должен существовать только один для одного и того же соответствия, в противном случае произойдет сбой.Итак, ожидаемый результат будет:

ID  Match code Status
101 123    A   NULL
102 123    B   NULL
103 123    C   NULL
104 234    A   NULL
105 234    B   NULL
106 234    C   NULL
107 234    B   FAIL
108 456    A   NULL
109 456    B   NULL
110 456    C   NULL

Спасибо

1 Ответ

3 голосов
/ 27 сентября 2011

Здесь нет никаких гарантий эффективности ...

update tableA
set status = 'FAIL'
where ID not in (
     select min(ID) 
     from tableA
     group by Match, code)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...