CftClub.ru
Клуб специалистов ЦФТ-Банк

Как в PL/PLUS использовать аналитические функции?

 
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Справочник PL/PLUS: Функции, примеры, приёмы
Предыдущая тема :: Следующая тема  
Автор Сообщение
mx1234567
Участник со стажем


Вступление в Клуб: 18.11.2010
СообщениеСр Май 14, 2014 11:44   Как в PL/PLUS использовать аналитические функции? Ответить с цитатой
Полезность: Нет оценки
Как в PL/PLUS использовать аналитические функции, например LAG?
Надо даты окончания откорректировать у доп. свойств договоров.
Пока написал код, который только последнюю строку может корректировать. Хочется добавить LAG и пройтись по всем.
Попробовал вот так, не получилось:

Код:

   for    
   (   
      select x
      (
         x : q_x, x.[DATE_BEG] : q_DATE_BEG, x.[DATE_END] : q_DATE_END
         --На это ругается
         -- begin pl/sql
         ,lag(x.[DATE_BEG], 1, null) over (order by x.[DATE_BEG]) : q_DATE_BEG_1
         -- end pl/sql
         
         {
         ,lag(a1.C_DATE_BEG, 1, null) over (order by a1.C_DATE_BEG)  q_DATE_BEG_2
         }      
      )
      in prop_ref%collection
      where x != prop_ref
      and x.[GROUP_PROP] = P_GROUP_PROP
      and nvl(x.[PROP], -1) = nvl(P_PROP, -1)
      and x.[DATE_BEG] < P_DATE_BEG   
      order by x.[DATE_BEG] desc
   )                                        
   loop            
      if x.q_DATE_END is null then
         x.q_x.[DATE_END] := P_DATE_BEG-1;
         stdio.put_line_buf('Для свойства: '||P_GROUP_PROP.[NAME]||' с датой '||to_char(x.q_DATE_BEG,'DD/MM/YYYY')||' проставлена дата окончания '||to_char(P_DATE_BEG-1,'DD/MM/YYYY'));
         exit;
      end if;   
   end loop;         
[/code]
Amper
Профи


Вступление в Клуб: 29.10.2010
СообщениеСр Май 14, 2014 12:56    Ответить с цитатой
Полезность: 2
Для этого используется функция analytic, формат такой:
Код:
analytic(lag(x.[DATE_BEG], 1, null), 'over (order by [1]])', x.[DATE_BEG])

Примеров использования в IBSO можно найти множество по слову ANALYTIC.
Показать сообщения:   
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Справочник PL/PLUS: Функции, примеры, приёмы Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Рейтинг@Mail.ru