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

Откуда:
Сообщений: 23
Здравствуйте. Помогите пожалуйста составить запрос. Есть таблица такого вида:

id name date size

1 name1 date1 size1
2 name2 date1 size2
3 name1 date2 size3
4 name2 date2 size4

А стоит задача привести к такому виду:

name date1 date2
name1 size1 size3
name2 size2 size4

Я так понимаю нужно использовать оператор UNPIVOT. Только не ясно как его применять в моём случае. Просьба в FAQ не отправлять, потому как читал там много, но ничего не удаётся.

P.S. лучшее, что смог сделать без UNPIVOT, но это не красиво:

SELECT name, (SELECT CAST([date] AS varchar) + ': ' + CAST(size as nvarchar) + ' ' as 'data()'
from [log] l2 where l1.name = l2.name for xml path('') )
from [log] l1 group by name
26 июл 12, 09:49    [12917713]     Ответить | Цитировать Сообщить модератору
 Re: Запрос с UNPIVOT  [new]
qwerty112
Guest
Dimkostav
Я так понимаю нужно использовать оператор UNPIVOT. Только не ясно как его применять в моём случае. Просьба в FAQ не отправлять, потому как читал там много, но ничего не удаётся.


НЕ UNPIVOT, а PIVOT
select name, date1, date2
from (select name, date, size from log) t
pivot (max(size) for date in ([date1], [date2])) pvt 
26 июл 12, 10:30    [12917998]     Ответить | Цитировать Сообщить модератору
 Re: Запрос с UNPIVOT  [new]
Dimkostav
Member

Откуда:
Сообщений: 23
qwerty112, большое спасибо. Это помогло!
26 июл 12, 10:41    [12918074]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить