Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Рекурсивный SQL-запрос / 8 сообщений из 8, страница 1 из 1
16.12.2007, 14:21
    #35012988
UnrealMan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рекурсивный SQL-запрос
Народ, такая трабла: есть таблица с полем p_count, указывающим количество товаров на складе. Мне требуется написать рекурсивный запрос таким образом, чтобы вывести каждый товар столько раз, сколько указано в поле p_count. Например, если для товара поле p_count = 3, то следует вывести эту запись 3 раза.
Если применять курсор для решения подобной задачи, то проблем не возникает, но мне необходимо реализовать это именно рекурсией.
...
Рейтинг: 0 / 0
16.12.2007, 17:20
    #35013099
Dmitry.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рекурсивный SQL-запрос
sql запрос не может быть рекурсивным (на сколько я знаю)
задача явно шире чем просто повторять одну и ту-же строчку по несколько раз.
...
Рейтинг: 0 / 0
19.12.2007, 14:44
    #35020536
panu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рекурсивный SQL-запрос
запрос рекурсивным может быть!, однако - я не могу себе представить, как реализовать рекурсией - поставленную задачу.
я пробовал только дерево вытаскивать из таблицы - получалось (описан пример в фаге)
...
Рейтинг: 0 / 0
19.12.2007, 14:46
    #35020546
panu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рекурсивный SQL-запрос
http://www.sql.ru/faq/faq_topic.aspx?fid=203
...
Рейтинг: 0 / 0
19.12.2007, 14:56
    #35020603
Марсель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рекурсивный SQL-запрос
SELECT * FROM table, lateral(sa_rowgenerator(1, table.p_count)) b

так пойдет ?
...
Рейтинг: 0 / 0
19.12.2007, 15:25
    #35020753
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рекурсивный SQL-запрос
panu пишет:
> запрос рекурсивным может быть!, однако - я не могу себе представить, как
> реализовать рекурсией - поставленную задачу.

Далеко не везде.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
19.12.2007, 16:23
    #35020998
salt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рекурсивный SQL-запрос
Здесь конечно мало рекурсии но задача решается

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
create table ppp (value char( 10 ) default '', cnt int default  0 )

insert into ppp values('a',  1 );
insert into ppp values('b',  3 );
insert into ppp values('c',  2 );
insert into ppp values('d',  1 );
insert into ppp values('e',  10 );


create table seq (value int NOT NULL default NULL UNIQUE)
insert into seq values( 0 )
insert into seq values( 1 )
insert into seq values( 2 )
insert into seq values( 3 )
insert into seq values( 4 )
insert into seq values( 5 )
insert into seq values( 6 )
insert into seq values( 7 )
insert into seq values( 8 )
insert into seq values( 9 )
insert into seq values( 10 )

select a.* from ppp a, seq s
WHERE a.cnt > s.value

...
Рейтинг: 0 / 0
21.01.2008, 12:40
    #35075590
FmDm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рекурсивный SQL-запрос
Хорошая идея, но, наверное, правильнее будет

Код: plaintext
1.
2.
select a.* from ppp a, RowGenerator s
WHERE a.cnt >= s.row_num
...
Рейтинг: 0 / 0
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Рекурсивный SQL-запрос / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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