Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Рекурсия в ХП 
:(
    Опции темы
Ronin08
Дата 31.3.2009, 13:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 218
Регистрация: 16.2.2008
Где: г.Москва

Репутация: нет
Всего: 1



Доброго времени суток

Имеются таблицы Item(ItemId(PK), Item, ParentId,...) и IncExp (CountId, ItemId(FK),...), 
Я разобрался как используя рекурсию извлечь всех потомков Item.ItemId:

Код

BEGIN
    WITH 
   tree (id, items,idParent) 
   AS (SELECT ItemId, Item, ParentId
      FROM Item 
      WHERE ItemId = @ItemId 
      UNION ALL 
      SELECT ItemId, Item, ParentId 
      FROM Item  
          INNER JOIN tree t 
           ON t.id = Item.ParentId)
    SELECT * FROM tree 
END


Как сделать Хранимую процедуру, которая бы для конкретного IncExp.CountId и Item.ItemId (включая всех детей )выводила всю информацию из IncExp

Это сообщение отредактировал(а) Ronin08 - 31.3.2009, 13:04
--------------------
Зачем вставать рано или поздно? Надо вставать вовремя
PM MAIL   Вверх
Ronin08
Дата 1.4.2009, 14:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 218
Регистрация: 16.2.2008
Где: г.Москва

Репутация: нет
Всего: 1



Неужели никто не сталкивался?

Я попробывал так:
Код

begin 
WITH 
   tree (id, items, idParent) 
   AS (SELECT Item.ItemId, Item.Item, Item.ParentId
      FROM Item 
      WHERE Item.ItemId = @ItemId and Item.UserId = @UserId and Item.IncFlag=@IncFlag
      UNION ALL 
      SELECT Item.ItemId, Item.Item, Item.ParentId 
      FROM Item  
      JOIN tree   ON tree.id = Item.ParentId)
    SELECT * FROM tree 

select 
    IncExp.CountName,
    IncExp.Expanse,
    tree.items
from IncExp
inner join tree on IncExp.ItemId = tree.id
end

Но пишет Invalid object name 'tree'. в строке 10 при выполнении процедуры
В чем может быть ошибка?
--------------------
Зачем вставать рано или поздно? Надо вставать вовремя
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "MS SQL"
Akina

Akina

Запрещается!

Публиковать ссылки и обсуждать взлом чего бы то ни было.

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы составления неспецифических запросов рассматриваются здесь
  • Используйте теги [code=sql][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MS SQL Server | Следующая тема »


 




[ Время генерации скрипта: 0.0388 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.