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

Откуда: Москва
Сообщений: 1718
Приветствую всех.
Подскажите пож-та по следующему

Есть таблица с данными

<CabName> | <Family>
Кабинет 1 | Иванов В.
Кабинет 1 | Петров В.
Кабинет 1 | Васечкин В.
Кабинет 2 | ААА В.
Кабинет 2 | ВВВ В.
...
Кабинет 10 | ССС В.

Хотелось бы получить данные в виде

Кабинет 1 | Кабинет 2
Иванов В. | ААА В.
Петров В. | ВВВ В.
Васечкин В. |


Пытался реализовать через PIVOT, но, я правильно понимаю, что при выводе данных в pivot можно использовать только группировку или все-таки можно как-то извратиться?
23 мар 12, 09:32    [12299695]     Ответить | Цитировать Сообщить модератору
 Re: Использование PIVOT - SQL 2005/2008  [new]
step_ks
Member

Откуда:
Сообщений: 936
а почему не

Кабинет 1 | Кабинет 2
Иванов В. | ВВВ В.
Васечкин В. | ААА В.
Петров В. |
23 мар 12, 09:37    [12299713]     Ответить | Цитировать Сообщить модератору
 Re: Использование PIVOT - SQL 2005/2008  [new]
омоним
Guest
это видимо для печати нужно)
23 мар 12, 09:53    [12299770]     Ответить | Цитировать Сообщить модератору
 Re: Использование PIVOT - SQL 2005/2008  [new]
Белов Владимир
Member

Откуда: Москва
Сообщений: 1718
step_ks
а почему не

Кабинет 1 | Кабинет 2
Иванов В. | ВВВ В.
Васечкин В. | ААА В.
Петров В. |


Да пофиг как... главное внешний вид :)
23 мар 12, 10:02    [12299812]     Ответить | Цитировать Сообщить модератору
 Re: Использование PIVOT - SQL 2005/2008  [new]
_ч_
Member

Откуда:
Сообщений: 1446
Белов Владимир
step_ks
а почему не

Кабинет 1 | Кабинет 2
Иванов В. | ВВВ В.
Васечкин В. | ААА В.
Петров В. |


Да пофиг как... главное внешний вид :)


Ну раз пофиг, тогда наверное как-то так:

select [Кабинет1], [Кабинет2], [Кабинет10] from(select ROW_NUMBER() OVER(ORDER BY Family) as i, Family as [Кабинет1] from @t t1
where CabName = 'Кабинет 1')t1
left join(select ROW_NUMBER() OVER(ORDER BY Family) as i, Family as [Кабинет2] from @t t2
where CabName = 'Кабинет 2')t2 on t2.i = t1.i
left join(select ROW_NUMBER() OVER(ORDER BY Family) as i, Family as [Кабинет10] from @t t10
where CabName = 'Кабинет 10')t10 on t10.i = t1.i
23 мар 12, 11:05    [12300322]     Ответить | Цитировать Сообщить модератору
 Re: Использование PIVOT - SQL 2005/2008  [new]
qwerty112
Guest
select /*rn,*/ [Кабинет 1], [Кабинет 2], [Кабинет 10]
from

(select CabName, Family, row_number() over(partition by CabName order by Family) as rn
from @t ) a

pivot (max(Family) for CabName in ([Кабинет 1], [Кабинет 2], [Кабинет 10])) pvt
23 мар 12, 11:13    [12300390]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить