将Power BI Interactive可视化与父子数据集关系结合使用

时间:2019-02-20 13:33:51

标签: azure-sql-database powerbi parent-child dax

我已经介入Power BI已有近一周了。 至少当您了解它的方法时,它似乎是一个强大的工具。

我希望能够根据当前所选组的所有子组查看治疗师,管理员和公民的总数。

这是我的例子: enter image description here 当我在“向下钻取甜甜圈图”中选择一个组(类似于一个客户组)时,我希望看到选定组中所有子组的管理员,理疗师和公民人数,如“聚集柱状图”所示。但是,我只获得所选组中的用户,而不得到子组中的用户。

我已经为管理员,治疗师和公民创建了量度,以基于TemplateLevel(类似于用户的角色: enter image description here 所有度量均使用不同的TemplateLevel以相同的方式编写。

以下是柱形图中使用的三个度量: enter image description here

在我的数据集中,我有表UserGroup: enter image description here IdPath和NumLevels尝试使用父子引用,但我没有正常工作,所以不要介意。 我希望Power BI的交互式系统将能够处理父/子引用,就像UserGroup [Id]和UserGroup [UserGroupParentId]一样。我最初的想法是将GroupName添加为每个可用子组级别的类别(所有者->客户->治疗师->公民)。

所有者组ID始终为27,这就是为什么向下钻取甜甜圈图过滤没有父级的组以显示客户组的原因。

报表的数据集来自从迁移到Azure SQL Server的测试数据库。

任何建议都将受到热烈欢迎!

亲切的问候 卡林

1 个答案:

答案 0 :(得分:1)

Power BI(或更准确地说,是Power BI的基础表格模型)不支持父/子关系。您必须转换/展平层次结构以构造一个表,该表包含层次结构所有级别的列:

| Id    | Owner     | Customer  | Therapist | Citizen  | Group    |
| ----- | --------- | --------- | --------- | -------- | -------- |
|     1 | ownerX    |           |           |          | 1        |
|     2 | ownerX    | cust1     |           |          | 1        |
|     3 | ownerX    | cust1     | tpA       |          | 1        |
|     4 | ownerX    | cust1     | tpA       | cit100   | 1        |
|     5 | ownerX    | cust1     | tpA       | cit101   | 1        |
|     6 | ownerX    | cust1     | tpB       |          | 1        |

以上是扁平化的层次结构,该层次结构也参差不齐(您可以拥有没有子项的父项)。

This pattern描述了如何使用DAX来构建扁平化的层次结构,但是通常,最佳实践是在将表加载到Power BI中之前在数据库侧扁平化数据(可以使用{ SQL中的{3}}。