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

Откуда:
Сообщений: 45
Столкнулся с казалось бы простой задачей, но совершенно не представляю как реализовать на SQL (MSSQL 2008)
Железнодорожная БД. Таблицы:

1. сегменты жд-полотна (треки) имеют айди, тип, название пути, и ключ территории
2. связующие точки (path) хранят внешние ключи на левый и правый трек
3. территории


Необходимо выбрать цепочки треков неопределенной длинны, которые начинаются треком типа 1, все последующие треки цепочки имеют тип 2, все треки цепочки имеют одинаковое название пути, и цепочка хотя бы на один сегмент заходит в соседнюю территорию (от той, в которой начиналась).

Подскажите, умоляю, задача как оказалось нетривиальная (по крайней мере я с подобными задачами на sql не сталкивался).
27 дек 11, 21:16    [11835722]     Ответить | Цитировать Сообщить модератору
 Re: Выбрать связанную цепочку записей  [new]
kDnZP
Member [заблокирован]

Откуда: ★[msg=16399436]★[msg=20850760]
Сообщений: 11289
nerdy_weirdie, Рекомендации
* Но на всяк случай - про рекурсивный CTE в курсе?
27 дек 11, 21:22    [11835749]     Ответить | Цитировать Сообщить модератору
 Re: Выбрать связанную цепочку записей  [new]
nerdy_weirdie
Member

Откуда:
Сообщений: 45
Нет, погуглю по этому словосочетанию, спасибо
27 дек 11, 21:33    [11835802]     Ответить | Цитировать Сообщить модератору
 Re: Выбрать связанную цепочку записей  [new]
nerdy_weirdie
Member

Откуда:
Сообщений: 45
Еще раз спасибо, kDnZP, рекурсивные CTE это то что мне нужно. Правда запрос всё еще впроцессе, ибо здесь описал очень упрощенное описание задачи, так что тему не закрываем :-)
28 дек 11, 03:21    [11836541]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить