Reporting services SSRS如何在表列中显示数据

Reporting services SSRS如何在表列中显示数据,reporting-services,Reporting Services,我有两个字段,一个名为StatusCode,一个名为Projects Status projects Active Project A Not started Project B Active Project C 如何以这种方式在表中显示SSR中的数据 Active Not Started Project A Project B Project C 所以我最后做的就是创建多个列表tablix,其中包含过滤器 因

我有两个字段,一个名为StatusCode,一个名为Projects

Status         projects

Active         Project A

Not started    Project B

Active         Project C
如何以这种方式在表中显示SSR中的数据

Active       Not Started

Project A    Project B

Project C

所以我最后做的就是创建多个列表tablix,其中包含过滤器

因为只有tablix可以在那里应用过滤器

谢谢你的回答

方法1:SSRS

更新SQL

选择项目、状态 ,按项目RN按状态顺序划分的分区上的行数 来自ProjStatTbl

创建一个矩阵

基于状态的列分组

新创建的秩RN上的行分组

仅删除最左边的列,而不删除关联的组

在主单元格中放置项目。这是最终的矩阵

瞧!你完了

方法2:SQL 您可以使用pivot转换或使用聚合来转换SQL中的列

下面是SQL语句

SELECT  
  MAX(CASE WHEN Status = 'Active' THEN Project ELSE NULL END) AS Active
, MAX(CASE WHEN Status = 'Not Started' THEN Project ELSE NULL END) AS NotStarted
FROM
  (SELECT Project, Status
      , Row_Number() OVER (Partition BY Status ORDER BY Project) RN
   FROM ProjStatTbl) Y
GROUP BY RN
数据转换后,现在可以使用表来表示数据

如果您有更多状态,则需要更新SQL语句或使用动态透视生成列。这里有一个链接,显示了转换SQL数据的不同方法


所以我最后做的就是创建多个列表tablix,其中包含过滤器

因为只有tablix可以在那里应用过滤器


谢谢你的回答

使用带有筛选器的两个列表,使每个列表仅包含一个状态的项目。方法1可以正常工作,但它会在每行中创建一个空值…类似于Active | Not Started a | B |C@user3755064检查更新的答案。更新了SQL查询并使用新列进行行分组。如果状态数发生变化,则需要添加更多表格。确实如此。我仍然想看看是否有一种方法可以在tablix上创建,但做同样的事情。