在 DAX 中表示层次结构

Representing an hierarchy in DAX

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

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 查询中完成吗?它是层次结构的表示。

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

Reporting Services 理解第一个示例中表示的层次结构。然后,您可以使用矩阵或 tablix 来表示您想要的层次结构,包括模拟 Excel 枢轴 table,这看起来就像您正在尝试做的那样。 Example.

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

查询检索数据。报告工具可以漂亮地格式化和显示数据。无需将报告工具的功能硬塞进查询语言中。

编辑:我错过了关于将其用作过滤器的部分。

Reporting Services 没有任何过滤器的本机概念作为报表元素。过滤器通常作为报告的参数实现,您可以将这些参数设为 cascading parameters.

以遵循层次结构

如果您想要一个用作过滤器的报告元素,那么您可以通过一些不稳定的变通方法来模拟带有报告元素的切片器,但是实现起来并不有趣,所以是时候开始问问您需要多少了想要在 SSRS 中执行此操作,或者您需要多少具有过滤器的特定可视化实现。 Here's a resource on emulating slicers in SSRS

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