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

Откуда: Москва
Сообщений: 247
Здравствуйте, коллеги,

Есть лог согласования документа. Документ может отклоняться и затем переоткрываться. Нужно для каждой записи лога проставить номер итерации. Например, для

1 CREATE
2 CLOSE
3 REOPEN
4 CLOSE
5 OK
6 CLOSE
7 REOPEN
8 OK
9 OK

Должно быть

1 CREATE 1
2 CLOSE 1
3 REOPEN 2
4 CLOSE 2
5 OK 2
6 CLOSE 3
7 REOPEN 3
8 OK 3
9 OK 3
30 дек 13, 16:55    [15365681]     Ответить | Цитировать Сообщить модератору
 Re: Хитрая нумерация  [new]
ten
Member

Откуда: Екатеринбург
Сообщений: 1672
giigro,
Номер = количество предыдущих 'REOPEN' + 1.
30 дек 13, 17:05    [15365740]     Ответить | Цитировать Сообщить модератору
 Re: Хитрая нумерация  [new]
Elic
Member

Откуда:
Сообщений: 29978
Пример невнятен, но STFF start_of_group
30 дек 13, 17:05    [15365742]     Ответить | Цитировать Сообщить модератору
 Re: Хитрая нумерация  [new]
Gallagher
Member

Откуда: ( ͡°◞ʖ◟ ͡°)
Сообщений: 542
with tst as (
select 1 as n, 'CREATE' as status from dual union all
select 2 as n, 'CLOSE' as status from dual union all
select 3 as n, 'REOPEN' as status from dual union all
select 4 as n, 'CLOSE' as status from dual union all
select 5 as n, 'OK' as status from dual union all
select 6 as n, 'CLOSE' as status from dual union all
select 7 as n, 'REOPEN' as status from dual union all
select 8 as n, 'OK' as status from dual union all
select 9 as n, 'OK' as status from dual 
)
select n, status, sum(decode(status,'REOPEN',1,0)) over(order by n asc)+1 rn from tst
order by n asc


         N STATUS         RN
---------- ------ ----------
1 CREATE 1
2 CLOSE 1
3 REOPEN 2
4 CLOSE 2
5 OK 2
6 CLOSE 2
7 REOPEN 3
8 OK 3
9 OK 3

9 rows selected
30 дек 13, 17:24    [15365840]     Ответить | Цитировать Сообщить модератору
 Re: Хитрая нумерация  [new]
Gallagher
Member

Откуда: ( ͡°◞ʖ◟ ͡°)
Сообщений: 542
неясно правда, почему в вашем примере 6ая строчка открывает новую версию документа:
6	CLOSE 3
... хотя такие же CLOSE до этого - не открывали
30 дек 13, 17:27    [15365847]     Ответить | Цитировать Сообщить модератору
 Re: Хитрая нумерация  [new]
giigro
Member

Откуда: Москва
Сообщений: 247
Gallagher
неясно правда, почему в вашем примере 6ая строчка открывает новую версию документа:
6	CLOSE 3
... хотя такие же CLOSE до этого - не открывали

Спасибо большое!
30 дек 13, 17:37    [15365889]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить