Главная страница
    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.009 c
14-46960
dtm
2003-04-26 15:00
2003.05.15
В чём коренные отличия Дельфи 5 от Дельфи 6?


14-46993
garic
2003-04-28 10:25
2003.05.15
РАБОТА С ФАЙЛАМИ


1-46769
Шишкин Илья
2003-05-01 12:28
2003.05.15
Работа с маской


1-46731
unreger
2003-05-03 13:50
2003.05.15
как различать ошибки одного класса (EADOException, напр.)


1-46791
oleg_sys
2003-05-01 14:41
2003.05.15
Вывод TFileStream в INI-файл





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский