在DAX中表示层次结构

时间:2015-10-02 11:10:20

标签: reporting-services dax

我有一个包含具有以下结构的表的多维数据集:

Level1 | Level2 | Level3 |
  USA        NY   New-York
  USA        NY   Niagra Falls
  USA        WA   Washington
  France  Paris   Montmarte

我想查询这个,所以我使用DAX获得以下内容:

USA 
   NY
      New-York
      Niagra Falls
   WA
      Washington
France
   Paris
      Montmarte

这可以在一个DAX查询中执行吗?它是层次结构的代表。

最后,我想将此作为报告服务报告的过滤器,用户应该能够轻松浏览层次结构。

1 个答案:

答案 0 :(得分:1)

Reporting Services了解第一个示例中表示的层次结构。然后,您可以使用矩阵或Tablix来表示您想要的层次结构,包括模拟Excel数据透视表,这就是您尝试执行的操作。 Example.

虽然我可以想到通过使用第二个示例中显示的重要空白来表示层次结构的几种方法,但我不会浪费我的时间或你的时间,因为没有我知道的报告工具能够理解以这种格式表示的层次结构。无需在查询中格式化层次结构。

查询检索数据。报告工具可以精确地格式化和显示数据。无需将报告工具功能强制转换为查询语言。

编辑:我错过了将此作为过滤器使用的部分。

Reporting Services没有任何过滤器的原生概念作为报表元素。过滤器通常作为报表的参数实现,您可以通过设置cascading parameters来设置这些参数以遵循层次结构。

如果您想要一个充当过滤器的报表元素,那么您可以使用带有一些不稳定的变通方法的报表元素来模拟切片器,但实现它并不好玩,因此它可以实现。是时候开始询问你想在SSRS中做多少,或者你需要多少具有过滤器的特定可视化实现。 Here's a resource on emulating slicers in SSRS

如上所述,您可以基于矩阵执行此操作,以直观地表示层次结构,并允许该矩阵中的选择使用新选择重新加载报表。这不会很有趣。它会很笨重。它不允许任何类型的快速多选;即如果我想选择5个项目,我将不得不经历5次迭代,点击该元素并等待报告完全重新加载。缓存将是你的朋友。