Форум: "Базы";
Текущий архив: 2003.05.15;
Скачать: [xml.tar.bz2];
ВнизПОМОГИТЕ написать процедуру извлечения потомков, ПЛЗ!!!... Найти похожие ветки
← →
DBDev (2003-04-24 12:40) [0]Имеем таблицу Т с деревом замкнутую на себе:
CID int
ParentID int
Category varchar[255]
напр.
1 0 Товары
...
2 1 Обувь
3 2 Женская
4 2 Мужская
Нужна процедура возвращающая рекордсет со всеми прямыми и косвенными потомками произвольной ветви дерева, которой на вход подается CID любой ветки.
CREATE PROCEDURE [dbo].[sp_select_childs] @cid int AS
SET nocount ON
DECLARE @tmp AS INT
SELECT @tmp= ParentID FROM Т WHERE CID = @cid
IF (@tmp = 0 )
SET @tmp = @cid
ELSE
BEGIN
WHILE EXISTS (SELECT * FROM Т WHERE CID IN (SELECT ParentID FROM Т WHERE CID = @tmp) )
SELECT @tmp= ParentID FROM ServicesTree WHERE CID = @tmp
END
select @tmp
return @tmp
GO
Что-то она по моему все наоборот делает, в чем ошибка, понять не могу...
← →
Соловьев (2003-04-24 12:50) [1]а зачем всех потомков, хватит только тех, которые следующие.
← →
NAlexey (2003-04-24 13:09) [2]Посмотри здесь: http://www.sql.ru/forum/actualthread.aspx?bid=1&tid=605 может поможет
← →
DBDev (2003-04-24 14:08) [3]2 NAlexey : СЕНКС!!!
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.05.15;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.008 c