Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 UPDATE по признаку в группе  [new]
MLans
Member

Откуда:
Сообщений: 396
Здравствуйте, есть такая задачка )
Несколько человек с одинаковым департаментом должны иметь статус 'X', если хоть один человек из этого департамента имеет такой же статус.

person_id | department | status
vasya IT X
petya IT Y
slava Sales Y
nikolay Sales Y

в результате UPDATE у petya статус должен поменяться на X.

Как лучше написать запрос, не используя подзапросы?
19 мар 14, 19:47    [15755174]     Ответить | Цитировать Сообщить модератору
 Re: UPDATE по признаку в группе  [new]
invm
Member

Откуда: Москва
Сообщений: 9827
MLans
Как лучше написать запрос, не используя подзапросы?
Чем не угодили подзапросы?
19 мар 14, 19:54    [15755213]     Ответить | Цитировать Сообщить модератору
 Re: UPDATE по признаку в группе  [new]
MLans
Member

Откуда:
Сообщений: 396
Такие условия задачи (
19 мар 14, 20:00    [15755237]     Ответить | Цитировать Сообщить модератору
 Re: UPDATE по признаку в группе  [new]
invm
Member

Откуда: Москва
Сообщений: 9827
MLans
Такие условия задачи (
Тогда вопрос "как лучше?" отпадает.
update t1
 set
  status = 'Y'
from
 Таблица t1 join
 Таблица t2 on t2.department = t1.department and t2.status = 'X'
where
 t1.status = 'Y';
19 мар 14, 20:07    [15755270]     Ответить | Цитировать Сообщить модератору
 Re: UPDATE по признаку в группе  [new]
Mikle83
Member

Откуда: Санкт-Петербург
Сообщений: 653
MLans,

так тривиально же - обновляйте все записи, в которых статус не Х,
и к которым "джойняться" иные участников департамента со статусом Х.

и никаких подзапросов
19 мар 14, 20:12    [15755291]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить