2010-11-29 2 views
0

я беру все элементы (например, рекламные объявления) из дерева с использованием CTE (here), но я задаюсь вопросом о двух вещах - самая трудная часть:T-SQL Некоторые вопросы о рекурсивного запроса (КТР)

1) возможно ли получить все названия категорий найденных рекламных объявлений? (в рекурсивном запросе CTE см. гиперссылку выше)

2) И (необязательно) как получить общее количество найдено количество рекламных объявлений в каждой категории? Я имею в виду, скажем, я нашел 6 пунктов от 3-х категорий, и я хотел бы видеть результат таким образом

category1 (6) -\ 
|    category3 (4) 
category2 (2) 

Любые идеи будут настолько полезны

+0

Ответ включает ссылку на статью, объясняющую вещи - считаете ли вы * чтение * этой ссылки? – 2010-11-29 19:25:34

ответ

1

первый вопрос, который вы должны перейти от снизу вверх, она может быть решена с изменением поиска информации порядка ехом:

with CTE (id, pid, name) 
as 
(
select id, parentid as pid,name 
from category 
where id = @lowLevelCategory 
union all 
select CTE.pid as id , category.parentid as pid, category.name 
from CTE 
inner join category 
on category.id = CTE.pid 
) 
select * from ss 

для второго: вы можете рассчитывать только подсчет подпунктов, но не Суммы и вам нужна функция для этого вычислений, так как группировка или подвыбор не может быть в рекурсивной части

Смежные вопросы