每列一行,列名称

时间:2016-12-15 12:11:10

标签: sql sql-server reporting-services

背景

我正在尝试创建一个SSRS报告,该报告将在作为参数传入的表上运行select *并显示该表中的所有数据。据我了解,我不能使用表格。我想使用数据透视表来实现这一目标。

select * from @table会返回类似这样的内容(来自adventureworks数据库)

<code>select * from person.person</code>

我想以这种格式显示日期:

Example output format

问题

我如何实现这一目标?我查看了使用PIVOT / UNPIVOT,但我见过的所有示例都使用静态列名和聚合。

我不知道设计时(或运行时)的列名,我假设我需要列表标题,如'table name','value1','value2'等?

限制

我无权访问创建存储过程。理想情况下,报告应该能够完全从SSRS运行,而无需创建新表等。

表现不是问题。

修改

编辑以增加一些清晰度。上例中的列名仅是一个示例。 @table参数可以是任何表,在设计时不会知道列名。列名可以是col1,col2或名称,地址......等等。

1 个答案:

答案 0 :(得分:0)

您可以使用普通的Tablix执行此操作,并在BusinessEntityID

上添加列组
  • 创建一个普通的Tablix。
  • 删除行组(仅限组)
  • 插入按BusinessEntityID
  • 分组的新父列组
  • 删除顶行(仅限行)
  • 根据建议的输出添加每个行标题
  • 添加第二列中的每个值

Like this