Список форумов BOSSForum.RU - Форум. БОСС-Кадровик
Независимый форум, посвященный системе БОСС-Кадровик
и всему, что с ней связано
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

Иерархическую структуру из дерева в список.

 
Начать новую тему   Ответить на тему    Список форумов BOSSForum.RU - Форум. БОСС-Кадровик -> SQL: ШКК (Штатно-Кадровый контур)
Предыдущая тема :: Следующая тема  
Автор Сообщение
rebel25
Большой шоколадный орден
Большой шоколадный орден


Зарегистрирован: 06.10.2008
Сообщения: 578
Откуда: Москва

СообщениеДобавлено: Чт Окт 09, 2014 16:18    Заголовок сообщения: Иерархическую структуру из дерева в список. Ответить с цитатой

Нужно вывести иерархическую структуру в список, чтобы в первом столбце элементы нулевого уровня, во втором, второго и т д. Скажите, как это сделать? может где есть готовый список или вьюха?
Мне не хватает поля уровень.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
RVV
Большой шоколадный орден
Большой шоколадный орден


Зарегистрирован: 14.01.2010
Сообщения: 449

СообщениеДобавлено: Чт Окт 09, 2014 18:23    Заголовок сообщения: Ответить с цитатой

WITH tree_ (id, NestingLevel, name, parent, id_firm, sort, Flag_deleted) AS
(
SELECT S.struct_code AS id, 0, S.struct_name, S.struct_parent, S.id_firm, S.sort, S.Flag_deleted
FROM structs AS S
WHERE S.struct_parent = 0 OR S.struct_parent IS NULL
OR struct_parent = struct_code
UNION ALL
SELECT struct_code, (NestingLevel + 1), struct_name, structs.struct_parent, structs.id_firm, structs.sort, structs.Flag_deleted
FROM structs INNER JOIN tree_ ON tree_.id = structs.struct_parent
)
SELECT id, NestingLevel, name, parent, id_firm, sort
FROM tree_
WHERE id_firm = @@id_firm
AND ( Flag_deleted = 0 OR Flag_deleted is NULL )
ORDER BY ABS(sort) NO_HINT
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
rebel25
Большой шоколадный орден
Большой шоколадный орден


Зарегистрирован: 06.10.2008
Сообщения: 578
Откуда: Москва

СообщениеДобавлено: Пт Окт 10, 2014 18:38    Заголовок сообщения: Ответить с цитатой

Спасибо, переписал для иерархических структур

WITH tree_ (id, NestingLevel, name, parent) AS
(
SELECT S.id AS id, 0, DBO.UDF_pr_structs_tree(s.pr_structs_el_typ, s.pr_structs_el_id), S.id_parent
FROM pr_structs_tree AS S
WHERE S.id_parent = 0 OR S.id_parent IS NULL OR id_parent = id
UNION ALL
SELECT pr_structs_tree.id, (NestingLevel + 1), DBO.UDF_pr_structs_tree(pr_structs_el_typ, pr_structs_el_id), id_parent
FROM pr_structs_tree INNER JOIN tree_ ON tree_.id = pr_structs_tree.id_parent
)
SELECT id, NestingLevel, name, parent
FROM tree_
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
rebel25
Большой шоколадный орден
Большой шоколадный орден


Зарегистрирован: 06.10.2008
Сообщения: 578
Откуда: Москва

СообщениеДобавлено: Пн Окт 13, 2014 12:23    Заголовок сообщения: потомки Ответить с цитатой

RVV
Не подскажите ешё как для иерархических структур создать аналог таблицы tree? - мне нужно для каждого узла знать потомков всех уровней.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
RVV
Большой шоколадный орден
Большой шоколадный орден


Зарегистрирован: 14.01.2010
Сообщения: 449

СообщениеДобавлено: Пн Окт 13, 2014 15:01    Заголовок сообщения: Ответить с цитатой

С иерарх.структурами не знаком, так что сами поиграйтесь с запросом
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов BOSSForum.RU - Форум. БОСС-Кадровик -> SQL: ШКК (Штатно-Кадровый контур) Часовой пояс: GMT + 4
Страница 1 из 1

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


Pоwerеd by рhpВB © 2001, 2005 рhpВB Grouр
Русская поддержка phрВB
Rambler's Top100 Рейтинг@Mail.ru Список форумов BOSSForum.RU