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

Откуда:
Сообщений: 7
Суть примерно в следующем. Есть таблица Products. В ней имеется множество столбцов, в т.ч. A, B, C, D. Также есть уникальный идентификатор, столбец ID. И есть столбец Date (тип date). И бинарный столбец Expired.

Если две или более строк совпадают по полям A, B, C и D, то нужно выставить Expired = 1 для всех из них кроме той, у которой самая свежая дата среди них.

Ломал голову пол-дня, перепробовал различные group by и прочее. Я в SQL недавно, подскажите: есть ли адекватное решение данного вопроса ? Если нет, то как лучше реализовать построчный перебор (хотя ну ой как не хотелось бы в такое влезать).

Заранее спасибо :)
4 июл 13, 22:58    [14524901]     Ответить | Цитировать Сообщить модератору
 Re: Изменение строк схожих по нескольким критериям  [new]
invm
Member

Откуда: Москва
Сообщений: 9406
with cte as
(
 select
  Expired,
  row_number() over (partition by A, B, C, D order by [Date] desc) as rn
 from
  Products
)
update cte
 set
  Expired = case when rn > 1 then 1 else 0 end;
4 июл 13, 23:22    [14524964]     Ответить | Цитировать Сообщить модератору
 Re: Изменение строк схожих по нескольким критериям  [new]
innocence
Member

Откуда:
Сообщений: 7
Огромное спасибо ! Самое забавное что за пол-дня поисков я ни разу не натыкался на нечто хоть сколько-нибудь подобное на Ваш код :)
5 июл 13, 00:03    [14525030]     Ответить | Цитировать Сообщить модератору
 Re: Изменение строк схожих по нескольким критериям  [new]
iap
Member

Откуда: Москва
Сообщений: 47001
innocence
Огромное спасибо ! Самое забавное что за пол-дня поисков я ни разу не натыкался на нечто хоть сколько-нибудь подобное на Ваш код :)
Да что Вы!
Например, даже позавчера было: Удалить дубли разных полей где A=B, B=A
Или
Нумерация записей
как убрать повторения сумм?

Поиск: https://www.sql.ru/forum/actualsearch.aspx?search="UPDATE CTE"&sin=0&bid=1&a=&ma=0&dt=-1&s=1&so=1
5 июл 13, 09:19    [14525515]     Ответить | Цитировать Сообщить модератору
 Re: Изменение строк схожих по нескольким критериям  [new]
=)8)
Guest
iap,
обидели?

А то мужики-то не в теме
5 июл 13, 10:14    [14525801]     Ответить | Цитировать Сообщить модератору
 Re: Изменение строк схожих по нескольким критериям  [new]
iap
Member

Откуда: Москва
Сообщений: 47001
=)8)
iap,
обидели?

А то мужики-то не в теме
Ага!
5 июл 13, 10:16    [14525818]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить