Транспонирование таблицы с помощью SQL - PullRequest
1 голос
/ 13 января 2009

У меня есть таблица SQL, например,


PV      Area    CouterParty

851     M010    Name1

561     M011    Name2

869     M012    Name3
...

И мне нужно транспонировать его, используя T-SQL (без служб отчетов или чего-либо еще), чтобы это выглядело так:

CounterParty M010 M011 M012 .... 

Name1        851 

Name2             561 

Name2                  869 

Дело в том, что я не знаю, сколько у меня будет кодов городов, поэтому столбцов может быть сколько угодно.

Есть идеи, как я могу это сделать? Спасибо миллиону

Ответы [ 3 ]

4 голосов
0 голосов
/ 16 сентября 2013

Используйте функцию поворота, если вы используете SQL Server 2005 или более позднюю версию

SELECT 
    CouterParty ,
    [M010] ,
    [M011],
    [M012]
FROM    ( SELECT    
            PV ,Area    ,CouterParty
          FROM      TablesName AS T
        ) AS T1Temp PIVOT ( Sum(PV) FOR T1Temp.CouterParty IN ( [M010],
                                                          [M011],
                                                          [M012] ) )  As PivotTable
0 голосов
/ 13 января 2009

Вы можете сделать это через цикл курсора и временную таблицу.

Выберите все коды городов, запустить курсор для каждой выбранной строки вставьте строки во временную таблицу по мере необходимости закройте курсор выберите из вашей временной таблицы

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...