Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / IBM DB2, WebSphere, IMS, U2, etc Новый топик    Ответить
 Помогите с запросом  [new]
OlegA67
Member

Откуда:
Сообщений: 284
Добрый день.
В таблице 9 полей типа DATE. В 9-ое поле надо проставить значение большей даты из оставшихся восьми. В полях допускается значение NULL.
9 окт 07, 08:55    [4771404]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
Mark Barinstein
Member

Откуда: Москва
Сообщений: 4946
Добрый день.
В предположении, что:
create table <table> (<pk>, d1 date, ..., d9 date)
create function interval(i int)
returns table (n int)
language sql
return
with t (n) as 
(
values (1)
  union all
select n+1
from t
where n<i
)
select n from t;
merge into <table> t using
(
select a.<pk>
, max
(
case t.n
  when 1 then d1
  ...
  when 8 then d8
end
) d9
from <table> a, table(interval(8)) t(n)
group by a.<pk>
) g on g.<pk>=t.<pk>
when matched then update set d9=g.d9
else ignore;
9 окт 07, 10:16    [4771766]     Ответить | Цитировать Сообщить модератору
Все форумы / IBM DB2, WebSphere, IMS, U2, etc Ответить