Как повернуть одну строку в таблицу «ключ-значение» в SSRS 2012?

Использование SSRS 2012 с SQL Server 2012. У меня есть набор результатов в SQL Server 2012, который имеет следующие поля в качестве заголовков:

sumDeposits,
sumWithdrawals,
sumFees,
etc

Это было сопоставлено с набором данных в SSRS.

Мне нужна таблица или матрица SSRS, в которой я могу иметь заголовок столбца в качестве первого столбца и строку данных (в наборе результатов есть только одна строка) в качестве второго столбца в таблице. Это возможно? Боролся с этим.

Я должен добавить, что сейчас я делаю это так: перетаскиваю поле из набора данных на страницу SSRS, а затем помещаю рядом с ним текстовое поле. Количество полей растет, поэтому я бы предпочел таблицу.


person Mark Allison    schedule 14.04.2013    source источник


Ответы (1)


Похоже, вы хотите развернуть данные из столбцов в строки. Если это так, вы должны иметь возможность использовать UNPIVOT в SQL.

Базовая структура запроса будет такой:

select col, value
from yourtable
unpivot
(
  value
  for col in (sumDeposits, sumWithdrawals, sumFees) -- your columns here
)unpiv;

Если у вас есть данные, которые не относятся к одному и тому же типу данных, вам придется преобразовать данные для всех столбцов, чтобы они были одного типа:

select col, value
from 
(
  select sumDeposits, 
    cast(sumWithdrawals as numeric(10, 2)) sumWithdrawals, 
    sumFees
  from yourtable
) d
unpivot
(
  value
  for col in (sumDeposits, sumWithdrawals, sumFees)
) unpiv;

Этот тип запроса точно такой же, как использование UNION ALL с несколькими вызовами одной и той же таблицы:

select 'sumDeposits' col, sumDeposits as value
from yourtable
union all
select 'sumWithdrawals' col, sumWithdrawals as value
from yourtable
union all
select 'sumFees' col, sumFees as value
from yourtable
person Taryn    schedule 14.04.2013