Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
7-47032
Sergey_
2003-03-19 15:41
2003.05.15
Работа с Com портом


1-46688
salex
2003-05-03 07:33
2003.05.15
О печати


3-46567
zhizhko
2003-04-25 05:49
2003.05.15
Как правильно настроить InterBase через BDE?


3-46598
me2
2003-04-23 16:12
2003.05.15
IBDataSet и внесение изменений


14-46979
Scorpx
2003-04-27 11:57
2003.05.15
САЙТ ВОССТАНОВЛЕН!!!





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский