Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Хелп с запросом  [new]
ssaich
Member

Откуда:
Сообщений: 1181
Картинка с другого сайта.

Пробую так
select * from TestTree where nodname='Аудио-видео техника' and TestTree.ID=TestTree.ID_PARENT

Не работает

В общем хочу запросом по имени главной категории 'Аудио-видео техника' получить дочерние категории которые ей принадлежат
2 янв 16, 15:50    [18636390]     Ответить | Цитировать Сообщить модератору
 Re: Хелп с запросом  [new]
ssaich
Member

Откуда:
Сообщений: 1181
Помогите пожалуйста
2 янв 16, 15:51    [18636393]     Ответить | Цитировать Сообщить модератору
 Re: Хелп с запросом  [new]
ssaich
Member

Откуда:
Сообщений: 1181
Через union попробовал но это не то
2 янв 16, 15:54    [18636409]     Ответить | Цитировать Сообщить модератору
 Re: Хелп с запросом  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
ssaich,

рекурсивное CTE
2 янв 16, 15:58    [18636421]     Ответить | Цитировать Сообщить модератору
 Re: Хелп с запросом  [new]
ssaich
Member

Откуда:
Сообщений: 1181
iap
ssaich,

рекурсивное CTE

???
2 янв 16, 16:29    [18636490]     Ответить | Цитировать Сообщить модератору
 Re: Хелп с запросом  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
ssaich
iap
ssaich,

рекурсивное CTE

???
Посмотреть документацию не судьба?
CTE
рекурсивное CTE
2 янв 16, 17:06    [18636536]     Ответить | Цитировать Сообщить модератору
 Re: Хелп с запросом  [new]
3unknown
Member

Откуда: New York
Сообщений: 140
create table #tmp(id int, id_parent int,nodname varchar(30))

insert #tmp
values(1, 0, 'Volga_Video'),
(2, 1,'Audio_Video'),
(3, 2, 'LCD_TV'),
(4, 2, 'Pristavki'),
(5, 2, 'Music_Centre')


WITH t (ID, id_parent, nodname,Level)
AS
(
select ID, id_parent, nodname,0 AS Level
from #tmp
where nodname = 'Audio_Video'
 UNION ALL
 select t1.ID, t1.id_parent, t1.nodname,Level + 1
from #tmp t1
join t on t1.id_parent = t.id
)
select ID, id_parent, nodname,Level
from t
2 янв 16, 17:37    [18636581]     Ответить | Цитировать Сообщить модератору
 Re: Хелп с запросом  [new]
aleks2
Guest
iap
ssaich
пропущено...

???
Посмотреть документацию не судьба?
CTE
рекурсивное CTE


Какое CTE? Побойтесь бога!

select * from TestTree 
  where ID_PARENT = ( select ID from TestTree where  nodname='Аудио-видео техника'  )
2 янв 16, 17:37    [18636582]     Ответить | Цитировать Сообщить модератору
 Re: Хелп с запросом  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
aleks2
iap
пропущено...
Посмотреть документацию не судьба?
CTE
рекурсивное CTE


Какое CTE? Побойтесь бога!

select * from TestTree 
  where ID_PARENT = ( select ID from TestTree where  nodname='Аудио-видео техника'  )
А если уровней будет больше?
2 янв 16, 17:42    [18636590]     Ответить | Цитировать Сообщить модератору
 Re: Хелп с запросом  [new]
X-Cite
Member

Откуда: Минск
Сообщений: 1838
А если хранить дерево в виде Nested Sets то и рекурсия ненужна
3 янв 16, 00:06    [18637574]     Ответить | Цитировать Сообщить модератору
 Re: Хелп с запросом  [new]
ssaich
Member

Откуда:
Сообщений: 1181
X-Cite,

Сам запрос додумал . тут вот заковыка нарисовалась
Картинка с другого сайта.

Например ставлю головку на корневом "Выгружать" - как запросом обновить все целиком ?

Либо ставлю Галку на Аудио-Видео .. пока ума не приложу...
3 янв 16, 21:36    [18639380]     Ответить | Цитировать Сообщить модератору
 Re: Хелп с запросом  [new]
X-Cite
Member

Откуда: Минск
Сообщений: 1838
;WITH CTE AS
(
  SELECT tt.ID, NULL as ID_PARENT FROM TestTree as tt
  WHERE tt.ID = 2 -- тут указываем ID на который ставим или снимаем галку
  UNION ALL
  SELECT tt.ID, tt.ID_PARENT from TestTree as tt
  JOIN CTE as c ON c.ID = tt.ID_PARENT
)
  UPDATE TestTree
  SET TestTree.A_LOAD = 0 -- или 1
  FROM CTE as c
  WHERE c.ID = TestTree.ID


Писал на глазок... Как-то так
5 янв 16, 19:43    [18645037]     Ответить | Цитировать Сообщить модератору
 Re: Хелп с запросом  [new]
ssaich
Member

Откуда:
Сообщений: 1181
X-Cite,

Картинка с другого сайта.
Вот такая ошибка, забыл добавить, пишу делфи приложение ,База Аccess
6 янв 16, 10:33    [18646638]     Ответить | Цитировать Сообщить модератору
 Re: Хелп с запросом  [new]
wizli
Member

Откуда: Minsk
Сообщений: 270
ssaich
X-Cite,

Картинка с другого сайта.
Вот такая ошибка, забыл добавить, пишу делфи приложение ,База Аccess

А вас не смутило название форума "Microsoft SQL Server"?
Идите в форум Access.
6 янв 16, 10:48    [18646660]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить