вложенные запросы с использованием UNPIVOT

Elen13

есть большая кросс-табулированая таблица
хочу её развернуть в обычную таблицу, но столбцы у меня сгруппированы в 4 группы
пока ничего кроме как вложенного запроса с 4мя последовательным unpivot в голову не приходит
мб есть более изящные способы?

Elen13

вот у меня пока такой запрос
 
SELECT *
FROM (SELECT *
FROM (SELECT *
FROM (SELECT *
FROM data
UNPIVOT (Value1 FOR Name1 IN ([Field11], [Field12] AS PVT1) p1
UNPIVOT (Value2 FOR Name2 IN ([Field21], [Field22] AS PVT2) p2
UNPIVOT (Value3 FOR Name3 IN ([Field31], [Field32] AS PVT3) p3
UNPIVOT (Value4 FOR Name4 IN ([Field41], [Field42] AS PVT4

Elen13

на при разворачивании 1400 строк и 85 столбцов время обработки 15 минут

hprt

Рекомендую ознакомиться - Правила оформления сообщений в ветке MSSQL на SQL.ru :)
В общем, пункт 6:
6. Если Ваш запрос связан с созданием какого-то запроса, то предоставление Вами следующих материалов может существенно ускорить нахождение решения:
- скрипты создания таблиц;
- скрипты заполнения этих таблиц тестовыми данными;
- описание желаемого результата на примере тестовых данных.
(эти данные лучше офрмлять с использованием специальных тэгов, которые повысят их читабельность. Вот пример хорошего стиля )
Подумайте также над тем, чтобы описать решаемую Вами задачу целиком. Возможно, что тот способ решения, который Вы стремитесь воплотить в жизнь, не является наилучшим, а лишь кажется Вам таковым. Например, вместо вопроса "Как добавить несколько полей в системную таблицу sysusers?" лучше спросить "Как мне хранить дополнительную информацию, привязанную к пользователю бд? Можно ли для этого использовать системную таблицу sysusers?"
(Пример НЕправильно оформоленного вопроса)
Оставить комментарий
Имя или ник:
Комментарий: