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

Откуда:
Сообщений: 13
Здравствуйте все.
Есть таблица в БД на sql2005express
вот такого содержания:
***********************************
UnitID TypeID UnitName ParentID
1 1 Root NULL
2 2 город Нск 1
3 3 улица 01 2
4 3 улица 02 2
5 3 улица 03 2
6 4 дом №01 3
7 4 дом №02 3
8 4 дом №03 3
9 4 дом №04 3
10 4 дом №05 3
11 4 дом №07 4
12 4 дом №09 4
13 4 дом №15 5
14 4 дом №21 5
15 4 дом №16 5
***********************************
Не могу сообразить каким запосом можно выбрать данные чтоб получить следующий вид:

Город Улица Дом

Вижу что к примеру Дом №21 стоит на улице 03 города НСК, а вот как это написать в запросе?
Может кто поделится мыслями на этот счет?
13 фев 15, 17:00    [17262292]     Ответить | Цитировать Сообщить модератору
 Re: Запрос к таблице с данными в одной колонке и перекрестными ссылками  [new]
_djХомяГ
Guest
Рекурcивное СTE поищите по форуму
13 фев 15, 17:08    [17262337]     Ответить | Цитировать Сообщить модератору
 Re: Запрос к таблице с данными в одной колонке и перекрестными ссылками  [new]
wqwq
Guest
Оно?
create table #temp (UnitID int, TypeID int, UnitName varchar(10), ParentID int)
insert into #temp
select 1, 1, 'Root', NULL	union
select 2, 2, 'город Нск',1	union
select 3, 3, 'улица 01',2	union
select 4, 3, 'улица 02',2	union
select 5, 3, 'улица 03',2	union
select 6, 4, 'дом №01', 3	union
select 7, 4, 'дом №02', 3	union
select 8, 4, 'дом №03', 3	union
select 9, 4, 'дом №04', 3	union
select 10,4, 'дом №05',	3	union
select 11,4, 'дом №07',	4	union
select 12,4, 'дом №09',	4	union
select 13,4, 'дом №15',	5	union
select 14,4, 'дом №21',	5	union
select 15,4, 'дом №16',	5
-----
select d.UnitName,u.UnitName,g.UnitName
from #temp as d inner join #temp as u on d.ParentID = u.UnitID and u.TypeID = 3
                inner join #temp as g on u.ParentID = g.UnitID and g.TypeID = 2
where d.TypeID = 4

-----  Дом №21 стоит на улице 03 города НСК
drop table #temp
13 фев 15, 17:19    [17262427]     Ответить | Цитировать Сообщить модератору
 Re: Запрос к таблице с данными в одной колонке и перекрестными ссылками  [new]
keen_gaff
Member

Откуда:
Сообщений: 13
Вроде то что надо. Спасибо.
Буду изучать...
13 фев 15, 17:22    [17262448]     Ответить | Цитировать Сообщить модератору
 Re: Запрос к таблице с данными в одной колонке и перекрестными ссылками  [new]
wqwq
Guest
не зачто, только в CTE пока не лезь, рано тебе туда еще
13 фев 15, 17:24    [17262464]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить