сложный update

SQL во всех проявлениях - от ANSI-92 до TSQL.

Модераторы: Yurich, Absurd

Ответить
energetix
Сообщения: 1
Зарегистрирован: 21 май 2009, 06:58

есть таблица test таблица с полями
name created_at active
record 2008 1
record 2007 1
record 2006 1
record1 2008 1
record1 2007 1
record1 2006 1
..................................
another ----
one more ----

нужно сделать апдейт таблицы: все одинаковые созданные поля сделать неактивными(active = 0) кроме самых свежих из однинаковых, чтобы таким образом в итоге получить

name created_at active
record 2008 1
record 2007 0
record 2006 0
record1 2008 1
record1 2007 0
record1 2006 0
...................................
another ----
one more ----
Аватара пользователя
Игорь Акопян
Сообщения: 1440
Зарегистрирован: 13 окт 2004, 17:11
Откуда: СПБ
Контактная информация:

какой сервер?
Изображение
Laba
Сообщения: 35
Зарегистрирован: 24 мар 2009, 17:47

update test
set active = 0
where active = 1
and exists (select 1 from test b
where b.name = test.name
and b.active = 1
and b.created_at > test.created_at)
Ответить