У меня есть таблица с двумя столбцами: мама - узел
Эта таблица составляет основу иерархии. Мать относится к узлу.
У каждого узла может быть несколько матерей, и у каждой матери может быть несколько детей. Это достигается несколькими рядами.
Если mother = NULL, то узел является узлом верхнего уровня. Может быть несколько узлов верхнего уровня, и узел может быть как узлом верхнего уровня, так и дочерним узлом другого узла.
например:
INSERT INTO MYTABLE VALUES(NULL, 2)
INSERT INTO MYTABLE VALUES(1, 2)
Сейчас я строю процедуру, которая должна знать максимальную глубину иерархии. Допустим, узел E является дочерним узлом D, который является дочерним узлом C.
Узел C является узлом верхнего уровня, а также дочерним узлом B, который является дочерним узлом A
Узел А является только узлом верхнего уровня.
Если мы говорим, что узел A имеет глубину = 0. Тогда в этом случае глубина узла E должна быть 4.
Кто-нибудь знает, как я могу построить утверждение, которое найдет для меня эту глубину?
Он должен найти максимальную глубину каждого узла в таблице и затем вернуть максимальное значение из них.
Спасибо!
Использование SQL Server 2008, кстати.
EDIT:
Интерес представляет ТОЛЬКО абсолютная максимальная глубина таблицы. Не глубина отдельных узлов.