powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Помогите дописать update
11 сообщений из 11, страница 1 из 1
Помогите дописать update
    #39385905
x17.mstu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Update templ.sat_subject_attrs sat_subj
set time_to=
(
select max(time_to_new) from 
 (
  select 
  ssa.subj_id, ssa.time_from,
   coalesce(lead (ssa.time_from, 1) over(
      partition by ssa.subj_id order by ssa.time_from asc), 
      to_Date('9999-12-31 00:00:00', 'YYYY-MM_DD HH24:MI:SS'))
      as time_to_new
  from templ.sat_subject_attrs ssa
  where ssa.subj_id=429230
 )sat_subj_new
    where sat_subj_new.subj_id=sat_subj.subj_id and
      sat_subj_new.time_from=sat_subj.time_from 
 )
 where sat_subj.subj_id=429230



Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
При таком update, будет получен результат 
subj_id              time_from                   time_to
429230		1999-09-24 00:00:00	  2000-01-14 00:00:00
429230		1999-09-24 00:00:00	  2000-01-14 00:00:00
429230		2000-01-14 00:00:00	  2004-12-14 00:00:00
429230		2000-01-14 00:00:00	  2004-12-14 00:00:00
429230		2004-12-14 00:00:00	  2007-04-10 00:00:00
429230		2007-04-10 00:00:00	  2014-10-29 14:32:28
429230		2014-10-29 14:32:28  9999-12-31 00:00:00

Как переписать, чтобы получить следующий результат

subj_id                time_from                     time_to
429230		1999-09-24 00:00:00	  1999-09-24 00:00:00
429230		1999-09-24 00:00:00	  2000-01-14 00:00:00
429230		2000-01-14 00:00:00	  2000-01-14 00:00:00
429230		2000-01-14 00:00:00	  2004-12-14 00:00:00
429230		2004-12-14 00:00:00	  2007-04-10 00:00:00
429230		2007-04-10 00:00:00	  2014-10-29 14:32:28
429230		2014-10-29 14:32:28  9999-12-31 00:00:00
...
Рейтинг: 0 / 0
Помогите дописать update
    #39385909
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
x17.mstu
Код: plsql
1.
чтобы получить следующий результат

Языком не владеешь? Как бы не оказалось, как в саге об XYZ.
...
Рейтинг: 0 / 0
Помогите дописать update
    #39385924
x17.mstu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Elic, что Вы имеете ввиду?
...
Рейтинг: 0 / 0
Помогите дописать update
    #39385927
x17.mstu,

мы должны найти 10 отличий или сам расскажешь чем первый результат отличается от второго и какоим образом предполагается именно такой результат
...
Рейтинг: 0 / 0
Помогите дописать update
    #39385944
x17.mstu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый Э - Эх,
Второй результат отличается от первого то, что в time_to любая запись, это следующая запись из time_to.
...
Рейтинг: 0 / 0
Помогите дописать update
    #39385945
x17.mstu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
x17.mstu,

Добрый Э - Эх,
Второй результат отличается от первого то, что в time_to любая запись, это следующая запись из time_from.
...
Рейтинг: 0 / 0
Помогите дописать update
    #39385948
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
x17.mstuВторой результат отличается от первого то, что в time_to любая запись, это следующая запись из time_from.RTFM MERGE
...
Рейтинг: 0 / 0
Помогите дописать update
    #39385955
Maxim Demenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
x17.mstu,

В heap organized tables понятия следующей нет. Следующая может быть только при существовании однозначного порядка сортировки. В вашем случае ключ соединения (в update) - неоднозначный.

Regards

Maxim
...
Рейтинг: 0 / 0
Помогите дописать update
    #39385959
x17.mstu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Maxim Demenko, Пути решения?
...
Рейтинг: 0 / 0
Помогите дописать update
    #39385971
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
x17.mstuПути решения?
Код: plsql
1.
, rowid
...
Рейтинг: 0 / 0
Помогите дописать update
    #39385974
Maxim Demenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
x17.mstu,

Добавить колонку обеспечивающую уникальность (rowid, если нет существующей) ?

Regards

Maxim
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Помогите дописать update
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]