Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
10.01.2002, 12:42
|
|||
|---|---|---|---|
|
|||
Как запросом вернуть все записи ветки до определенного уровня? |
|||
|
#18+
Уважаемые коллеги! Суть проблемы такова: Есть таблица пользователей и таблица доступов. Каждый пользователь подчинен руководителю в древовидной структуре. Запрос должен вернуть всех пользователей, являющихся подчиненными данного, а также всех, являющихся подчиненными начальника (включая их подчиненных), до того уровня, в котором начальник уже имеет доступ, например Начальник1 Подначальник1 Подначальник2 Подчиненный1 Подчиненный2 Подчиненный3 Подчиненный4 Если идет проверка Подчиненный1, то запрос должен вернуть также Подчиненный2 и Подначальник1, а если идет проверка Подначальник1, то Подчиненный1,Подчиненный2,Подначальник2,Подчиненный3 и Подчиненный4. Не могу сообразить, как это оформить... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.01.2002, 14:46
|
|||
|---|---|---|---|
Как запросом вернуть все записи ветки до определенного уровня? |
|||
|
#18+
http://sdm.viptop.ru/articles/sqltrees.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.01.2002, 03:33
|
|||
|---|---|---|---|
|
|||
Как запросом вернуть все записи ветки до определенного уровня? |
|||
|
#18+
Есть еще вариант: http://rdbms.narod.ru/article/tree/index.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.01.2002, 06:00
|
|||
|---|---|---|---|
|
|||
Как запросом вернуть все записи ветки до определенного уровня? |
|||
|
#18+
Я постоянно пользуюсь для реализации подобных деревьев рекурсией не очень быстро - зато просто: Допустим есть таблица List(ID,UpID) и хочется получить всех потомков вершины @LevelID CREATE PROCEDURE TreeExample @Level VARCHAR(50) AS SET NOCOUNT ON DECLARE @tmpLevel VARCHAR(50) SELECT @tmpLevel=(SELECT MIN(ID) FROM List WHERE UpID=@Level) IF @tmpLevel IS NOT NULL SELECT @tmpLevel WHILE @tmpLevel IS NOT NULL BEGIN EXEC TreeExample @TLevel SELECT @tmpLevel=(SELECT MIN(ID) FROM List WHERE UpID=@Level AND ID>@tmpLevel) IF @tmpLevel IS NOT NULL SELECT @tmpLevel END Обычно результат процедуры помещаю во временную таблицу и далее вывожу как мне нужно Сергей. p.s. Этот вариант стал рабочим в версиях SQL с 7.0 где микросовт подкрутил максимальное количество вложенных вызовов процедур , в 6.5 было очень мало, сколько не помню толи 16 толи и того меньше. С уважением, Сергей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=46&mobile=1&tid=1824378]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
49ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
33ms |
get tp. blocked users: |
1ms |
| others: | 212ms |
| total: | 333ms |

| 0 / 0 |
