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

Откуда:
Сообщений: 245
есть таблица с иерархическими данными: первичный ключ - event_id, соответсвенно ключ предка - parent_event_id. Один предок может иметь много детей.


подскажите как написать запрос: входящий параметр - event_id, на выходе нужно получить все строки с event_id, которые являются предками для входного event_id.
тип event_id - int
9 окт 09, 14:11    [7764941]     Ответить | Цитировать Сообщить модератору
 Re: Выборка иерархических данных  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10234
Блог
https://www.sql.ru/articles/mssql/01091502TreesInSQL.shtml
9 окт 09, 14:14    [7764964]     Ответить | Цитировать Сообщить модератору
 Re: Выборка иерархических данных  [new]
strassebahn_X
Member [заблокирован]

Откуда:
Сообщений: 245
А нельзя без CreateTable?

да и пользователей базы будет несколько
9 окт 09, 14:17    [7764999]     Ответить | Цитировать Сообщить модератору
 Re: Выборка иерархических данных  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10234
Блог
strassebahn_X
А нельзя без CreateTable?

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


это привет
9 окт 09, 14:18    [7765022]     Ответить | Цитировать Сообщить модератору
 Re: Выборка иерархических данных  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10234
Блог
Knyazev Alexey


это привет

пример
9 окт 09, 14:19    [7765027]     Ответить | Цитировать Сообщить модератору
 Re: Выборка иерархических данных  [new]
daw
Member

Откуда: Муром -> Москва
Сообщений: 7381

> А нельзя без CreateTable?
> да и пользователей базы будет несколько

меня вот это поражает всегда. в t-sql понимаем чуть меньше, чем ничего, но
бросаем мимолетный взгляд на статью - и сразу же "мне это не подходит - нельзя
ли без create table?". может сначала все-таки прочитать статью и разобраться
попробовать?
create table - это создание тестового окружения, не более того. чтоб можно
было выполнить приведенный код и сразу результат увидеть.

Posted via ActualForum NNTP Server 1.4

9 окт 09, 14:22    [7765066]     Ответить | Цитировать Сообщить модератору
 Re: Выборка иерархических данных  [new]
Glory
Member

Откуда:
Сообщений: 104760
strassebahn_X
А нельзя без CreateTable?

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

CreateTable из ссылки - это создание ваших таблиц с данными
9 окт 09, 14:24    [7765085]     Ответить | Цитировать Сообщить модератору
 Re: Выборка иерархических данных  [new]
daw
Member

Откуда: Муром -> Москва
Сообщений: 7381

но, справедливости ради, Селко в этой статье все-же предлагает работать с
другой структурой для хранения иерархий.
статью прочитать безусловно стоит, но для существующей структуры
можно поразбираться с рекурсивными cte:
http://msdn.microsoft.com/ru-ru/library/ms186243.aspx
или по-старинке:
http://msdn.microsoft.com/en-us/library/aa172799(SQL.80).aspx

ну, и на форуме из этих деревьев такие леса растут - мало не покажется.

Posted via ActualForum NNTP Server 1.4

9 окт 09, 14:43    [7765277]     Ответить | Цитировать Сообщить модератору
 Re: Выборка иерархических данных  [new]
strassebahn_X
Member [заблокирован]

Откуда:
Сообщений: 245
CTE/временные таблицы мне не нравятся.

строк в таблице не больше тысячи, все строки таблицы продублированны в клиентской прогpамме,
там и создал рекурсивную функцию для выборки всех предков.

Имхо алгоритм тот же, но програмировать на человеческом языке всё-таки удобнее
9 окт 09, 14:50    [7765366]     Ответить | Цитировать Сообщить модератору
 Re: Выборка иерархических данных  [new]
-=DiM@n=-
Member

Откуда: Москва
Сообщений: 1564
Неплохая статья
9 окт 09, 14:59    [7765449]     Ответить | Цитировать Сообщить модератору
 Re: Выборка иерархических данных  [new]
Glory
Member

Откуда:
Сообщений: 104760
strassebahn_X
CTE/временные таблицы мне не нравятся.

строк в таблице не больше тысячи, все строки таблицы продублированны в клиентской прогpамме,
там и создал рекурсивную функцию для выборки всех предков.

Имхо алгоритм тот же, но програмировать на человеческом языке всё-таки удобнее

И зачем было тогда задавать вопрос ?
9 окт 09, 15:02    [7765464]     Ответить | Цитировать Сообщить модератору
 Re: Выборка иерархических данных  [new]
vino
Member

Откуда:
Сообщений: 1191
strassebahn_X
CTE/временные таблицы мне не нравятся.

строк в таблице не больше тысячи, все строки таблицы продублированны в клиентской прогpамме,
там и создал рекурсивную функцию для выборки всех предков.

Имхо алгоритм тот же, но програмировать на человеческом языке всё-таки удобнее
если версия позволяет, настоятельно рекомендую именно CTE. А на каком языке-то клиент, не расслышал?
9 окт 09, 15:04    [7765477]     Ответить | Цитировать Сообщить модератору
 Re: Выборка иерархических данных  [new]
Anddros
Member

Откуда:
Сообщений: 1077
vino
А на каком языке-то клиент, не расслышал?

Автор же вроде ясно сказал:
strassebahn_X
на человеческом ...

9 окт 09, 15:38    [7765758]     Ответить | Цитировать Сообщить модератору
 Re: Выборка иерархических данных  [new]
strassebahn_X
Member [заблокирован]

Откуда:
Сообщений: 245
C#
9 окт 09, 15:52    [7765874]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить