Форум программистов, компьютерный форум, киберфорум
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/41: Рейтинг темы: голосов - 41, средняя оценка - 4.73
0 / 0 / 0
Регистрация: 06.02.2015
Сообщений: 2
1

Нахождение потомков в дереве. "Максимальная рекурсия 100 была использована до завершения инструкции"

06.02.2015, 20:37. Показов 8496. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
нужно найти потомков в дереве начиная с @P, вылезает еще ошибка " Msg 530, Level 16, State 1, Line 58
Выполнение инструкции прервано. Максимальная рекурсия 100 была использована до завершения инструкции"



SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[Лицевые счета] ROW_ID INT IDENTITY(1,1) NOT NULL,
                         Счета  INT NOT NULL, --поле иерархии (связь на родительскую запись)
                         Номер INT NULL           -- номер лицевого счета
 
 
WITH Rec (Номер, ROW_ID, level)
AS 
   (SELECT Номер, ROW_ID, 0
   FROM dbo.[Лицевые счета] AS L
   WHERE ROW_ID =@P 
UNION ALL
   SELECT L.Номер, L.ROW_ID, Rec.level + 1
   FROM dbo.[Лицевые счета] AS L   INNER JOIN Rec
   ON  L.Счета = Rec.ROW_ID)
 
SELECT * FROM Rec;
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.02.2015, 20:37
Ответы с готовыми решениями:

Почему была использована ссылка?
строка 35 → Почему была использована ссылка? void ZLab10::wektor() { vector<double> wektor; ...

Определить число узлов в дереве, имеющих двух потомков
Здравствуйте! Имеется код, представленный ниже. Необходимо добавить функцию, которая будет...

Определение программы, которая была использована для создания сайта
кусок основного файла. <meta name="generator" content="2015.0.0.309"> <title>Site</title> ...

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

3
2152 / 1289 / 516
Регистрация: 04.03.2014
Сообщений: 4,092
07.02.2015, 10:44 2
Westnik76, так нету же условия выхода из рекурсии

к примеру ставим глубину рекурсии 10

SQL
1
2
3
4
5
6
7
8
9
10
WITH Rec (Номер, ROW_ID, level)
AS 
   (SELECT Номер, ROW_ID, 10
   FROM dbo.[Лицевые счета] AS L
   WHERE ROW_ID =@P 
UNION ALL
   SELECT L.Номер, L.ROW_ID, Rec.level - 1
   FROM dbo.[Лицевые счета] AS L   INNER JOIN Rec
     ON  L.Счета = Rec.ROW_ID)
   WHERE level > 0
2
3529 / 2106 / 749
Регистрация: 02.06.2013
Сообщений: 5,122
07.02.2015, 11:09 3
Лучший ответ Сообщение было отмечено Westnik76 как решение

Решение

Westnik76, ищите кольцевые ссылки в таблице.
1
0 / 0 / 0
Регистрация: 06.02.2015
Сообщений: 2
09.02.2015, 00:57  [ТС] 4
накосячил при заполнении таблицы, спасибо за помощь
0
09.02.2015, 00:57
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.02.2015, 00:57
Помогаю со студенческими работами здесь

Рекурсия: вывод потомков заданного объекта
Ребят помогите решить проблему дано дерево нужно с помощью рекурсии вывести для кого есть...

В бинарном дереве поиска удалите все вершины, для которых количество потомков в левом поддереве отличается от количества
Здравствуйте, помогите решить задачу на С++ В бинарном дереве поиска удалите все вершины, для...

В бинарном дереве поиска удалите все вершины, для которых количество потомков в левом поддереве отличается от количества
Здравствуйте, помогите решить задачу на С++ В бинарном дереве поиска удалите все вершины, для...

Шифрование с заменой. Как можно проверить была ли использована эта буква ранее или нет
Здраствуйте пытаюсь зашифровать буквы на другие буквы в алфавите. использую код. string...

Максимальная высота полного поддерева опирающегося на листья в дереве
Не могу понять интересную задачку, как подсчитать высоту поддерева опирающегося на листья Вот...

Нахождение родителей и потомков узла дерева
Найти по значению узла его родителя (если имеется), его потомков (если имеются).


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru