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

Откуда:
Сообщений: 147
чего то я никак не могу собразить :(

существует таблица

create table testdt(datto date,name varchar(255));

с такими данными:
-----------------------
datto | name |
-----------------------
2001-01-01 | test |
2002-01-01 | test |
2003-01-01 | test |
2004-01-01 | test |
2005-01-01 | test |
2005-01-01 | test1 |
2006-01-01 | test1 |
2007-01-01 | test1 |
2008-01-01 | test1 |
-----------------------

необходимо проапдейтить те записи, у которых максимальная дата для каждого значения name
6 авг 08, 16:48    [6035388]     Ответить | Цитировать Сообщить модератору
 Re: Update max значений  [new]
Andrey.L
Member

Откуда: Харьков
Сообщений: 1546
update testdt t
  set ...
  where (t.name, t.datto) = (select t1.name, max(t1.datto) from testdt t1 group by t1.name)
6 авг 08, 16:52    [6035410]     Ответить | Цитировать Сообщить модератору
 Re: Update max значений  [new]
Andrei Fomichev
Member

Откуда: Москва
Сообщений: 453
с учетом условия

необходимо проапдейтить те записи, у которых максимальная дата для каждого значения name

правильнее будет так

update testdt t
  set ...
  where (t.name, t.datto) IN (select t1.name, max(t1.datto) from testdt t1 group by t1.name)
6 авг 08, 16:57    [6035441]     Ответить | Цитировать Сообщить модератору
 Re: Update max значений  [new]
Насонов Алексей
Member

Откуда:
Сообщений: 147
списибо
7 авг 08, 08:07    [6036970]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить