0

将 SSRS 2012 与 SQL Server 2012 一起使用。我在 SQL Server 2012 中有一个结果集,其中包含以下字段作为标题:

sumDeposits,
sumWithdrawals,
sumFees,
etc

这已映射到 SSRS 中的数据集。

我想要一个 SSRS 表或矩阵,其中我可以将列标题作为第一列,将数据行(结果集中只有一行)作为表中的第二列。这可能吗?一直在为此苦苦挣扎。

我应该补充一点,我现在的做法是将一个字段从数据集中拖到 SSRS 页面上,然后在它旁边放一个文本框。字段的数量正在增长,所以我宁愿有一张桌子。

4

1 回答 1

2

听起来您想数据从列中转为行。如果是这种情况,那么您应该能够在 SQL中使用UNPIVOT函数。

查询的基本结构将是:

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;

这种类型的查询与使用 aUNION 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
于 2013-04-14T11:04:39.573 回答