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

Откуда: Москва
Сообщений: 655
Добрый день.

Подскажите как можно сделать такой запрос:
Есть таблица отделов вида

Create table #Dep (ID INT IDENTITY(1,1) PRIMARY KEY NOT NULL, DepName varchar(20), DepLevel varchar(20))

INSERT INTO #Dep (DepName, DepLevel)
SELECT 'D1','1.'
UNION ALL
SELECT 'D2','1.1.'
UNION ALL
SELECT 'D3','1.2.'
UNION ALL
SELECT 'D4','1.3.'
UNION ALL
SELECT 'D5','1.4.'
UNION ALL
SELECT 'D6','1.1.1.'
UNION ALL
SELECT 'D7','1.1.2.'
UNION ALL
SELECT 'D8','1.1.3.'
UNION ALL
SELECT 'D9','1.1.4.'
UNION ALL
SELECT 'D10','1.1.4.1.'
UNION ALL
SELECT 'D11','1.1.4.2.'
UNION ALL
SELECT 'D12','2.'
UNION ALL
SELECT 'D12','2.1'
UNION ALL
SELECT 'D12','2.2'
UNION ALL
SELECT 'D12','2.1.1.'
UNION ALL
SELECT 'D12','3.'
UNION ALL
SELECT 'D12','4.'

SELECT * FROM #Dep ORDER BY DepLevel

DROP TABLE #Dep

нужно получить список отделов, который входит выбранных отдел
скажем для D11
нужно вывести

D1 1.
D2 1.1.
D9 1.1.4.
D11 1.1.4.2.

Сервер
Microsoft SQL Server 2008 R2 (SP1) - 10.50.2500.0 (X64) Jun 17 2011 00:54:03 Copyright (c) Microsoft Corporation Enterprise Edition (64-bit) on Windows NT 5.2 <X64> (Build 3790: Service Pack 2)

Спасибо
30 окт 12, 15:17    [13397357]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросиком  [new]
tetxx
Member

Откуда:
Сообщений: 297
select *
from #dep d
left join #Dep d2 on d.DepLevel like d2.DepLevel+'%'
where d.DepName = 'D11'
30 окт 12, 15:24    [13397403]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросиком  [new]
buser
Member

Откуда: Санкт-Петербург
Сообщений: 4539
select d.* from #Dep d join #Dep r on r.DepLevel like d.DepLevel+ '%' and r.DepName = 'D11' 
?
30 окт 12, 15:27    [13397426]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросиком  [new]
Domninsky
Member

Откуда: Москва
Сообщений: 655
tetxx,

Спасибо!
30 окт 12, 15:30    [13397460]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросиком  [new]
buser
Member

Откуда: Санкт-Петербург
Сообщений: 4539
не успел... первый раз вижу нормальное дерево :)
30 окт 12, 15:30    [13397461]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить