Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.01.20;
Скачать: [xml.tar.bz2];

Вниз

Как написать запрос к таблице (   Найти похожие ветки 

 
oleon   (2002-12-23 18:48) [0]

Как написать запрос чтобы он возвращал ID-шники всех детей?
ну т.е. ID шники записей, которые входят в эту ветку?


 
oleon   (2002-12-23 18:49) [1]

таблица ID, GROUPID, NAME


 
Delirium   (2002-12-23 19:11) [2]

CREATE procedure ap_UnrollingTreeKeys (
@StartNode varchar(50),
@idNode sysname,
@idParent sysname,
@TableName sysname )
as
exec("
set nocount on
select "+@idNode+" into #tmp
from "+@TableName+" where "+@idNode+"="+@StartNode+"
while exists(select "+@idNode+" from "+@TableName+"
where ("+@idParent+" in (select "+@idNode+" from #tmp))
and ("+@idNode+" not in (select "+@idNode+" from #tmp)))
insert #tmp select "+@idNode+" from "+@TableName+"
where ("+@idParent+" in (select "+@idNode+" from #tmp))
and ("+@idNode+" not in (select "+@idNode+" from #tmp))
set nocount off
select "+@idNode+" from #tmp order by "+@idNode+"
set nocount on
drop table #tmp
")




 
asmith   (2002-12-23 19:37) [3]

Почитай в MSSQL Server BOL статью "Expanding Hierarchies"


 
oleon   (2002-12-24 15:08) [4]

спасибо вам господа(товарищи) ...


 
oleon   (2002-12-24 15:33) [5]

Выдает такую ошибку :
Server: Msg 8101, Level 16, State 1, Line 7
An explicit value for the identity column in table "#tmp" can only be specified when a column list is used and IDENTITY_INSERT is ON.


 
sniknik   (2002-12-24 15:54) [6]

таблица ID, GROUPID, NAME
ID наверное Автоинкремент?

или делай в #tmp его простым числом. соответственно таблицу сначала создавать потом вместо select into insert into.
либо отключи для #tmp
SET IDENTITY_INSERT #tmp ON
(интересно пройдет для еще несозданной таблици?)


 
Polevi   (2002-12-24 18:15) [7]

CREATE FUNCTION AccStateIDsToTable (@ID INT)
RETURNS @T TABLE (ID INT, Level INT) AS
BEGIN
DECLARE @level INT
SET @Level=0

INSERT INTO @T (ID,Level) VALUES (@ID,0)
while exists(SELECT * FROM @T T, YourTable YT WHERE T.level=@level and YT.Owner=T.ID)
begin
INSERT @T (ID, level) SELECT YT.ID, @level+1 from @T T, YourTable YT WHERE T.level=@level and YT.Owner=T.ID
SET @level=@level+1
end

RETURN
END





Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2003.01.20;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.015 c
3-62414
Nikolai_S
2002-12-23 15:38
2003.01.20
Работа с MS Excel как с БД через ODBS


6-62706
VaS
2002-11-22 12:52
2003.01.20
Открытие сокета в неглавной нити


6-62709
VS2001
2002-11-22 06:39
2003.01.20
Многопоточная закачка по ФТП протоколу


3-62407
Lonely_F
2002-12-24 06:03
2003.01.20
Здесь есть настоящие мастера??? Если да, то вопрос именно для них


4-62928
Cobalt
2002-12-02 17:10
2003.01.20
Взаимная блокировка окон





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