транспонировать строки в столбцы в SQL

У меня есть проблема в получении желаемого результата с запросом SQL.

Мои данные sql следующие:

TOTAL   Charge      PAYMNET      A         B        C          D       E      MonthYear
------- ----------- ----------- --------- -------- ---------- ------- ------- ----------
661     157832.24   82967.80    700.00    10.70    58329.33   0.00    0.00    Oct-2013
612     95030.52    17824.28    850.00    66.10    53971.41   0.00    0.00    Nov-2013
584     90256.35    16732.91    700.00    66.10    52219.87   0.00    0.00    Dec-2013
511     72217.32    12336.12    285.00    53.17    42951.12   0.00    0.00    Jan-2014

Мне нужен вывод следующим образом,

Data            Jan-2013            Feb-2013            Mar-2013

TOTALCOUNT      761                 647                 671
Charge          126888              119995              151737.5
Payment         25705.4             26235.47            28704.41
A               1089.08             1020                745
B               2100.4              1947.25             1868.22
C               94246.55            84202.15            115673.7
D               0                   0                   0
E               0                   0                   0

Я видел примерыpivot а такжеunpivot, вpivot Я не получаю заголовки столбцов в виде данных строк, а вunpivot Я не нашел пример, где я могу транспонировать несколько столбцов. У меня есть еще один вариант, чтобы получить этот результат в коде. Но я хочу знать, возможно ли получить такой результат в SQL?

редактировать

Результат даст только за 3 или 4 месяца, не более того.

Обновить Первый пример данных - это фактические данные, которые я получу в результате нескольких объединений и группировки по нескольким таблицам, которые я буду хранить во временной таблице. Я попытался получить требуемый результат, изменив запрос, что невозможно из-за структуры таблицы. Мне удалось получить результат, как в первом примере данных, но это не то, что клиент хочет видеть !!! Поэтому мне нужно обработать данные временной таблицы, которые будут содержать от 3 до 4 строк. Запрос для получения первого результатаselect * from temp, Обработка должна быть сделана наtemp таблица результатов.

Update-2

Я пробовал следующий запрос

declare @cols varchar(max)
select @cols = STUFF((select ', ' + MonthYear
                      from #tmp for xml path('')),1,1,'')

declare @query varchar(max)
set @query = 
        'select ''TOTAL'' as Data,' +@cols+' from
        (select MonthYear,TOTALCLAIMS from #tmp)st
        pivot
        (
            MAX(TOTAL) for MonthYear in (' + @cols + ')
        )pt;'

Который дал мне первый ряд правильно !!! Но я пытался использоватьunion как

set @query = 
        'select ''TOTAL'' as Data,' +@cols+' from
        (select MonthYear,TOTALCLAIMS from #tmp)st
        pivot
        (
            MAX(TOTAL) for MonthYear in (' + @cols + ')
        )pt;
        union
        select ''CHARGES'' as Data,' +@cols+' from
        (select MonthYear,TOTALCLAIMS from #tmp)st
        pivot
        (
            MAX(CHARGES) for MonthYear in (' + @cols + ')
        )pt;'

Который дает ошибку какincorrect syntax near union, Любой знает, как объединитьсяpivot Результаты? Или есть ли лучший способ сделать это?

Благодарю вас.

Ответы на вопрос(3)

Ваш ответ на вопрос