补充课程 - 不规则层次结构
适用于:SQL Server 2017 及更高版本的 Analysis Services Azure Analysis Services Fabric/Power BI Premium
在本补充课程中,将解决对在不同级别包含空白值(成员)的层次结构进行透视时的一个常见问题。 例如,某个组织的高级经理同时具有部门经理和非经理作为直接下属。 或者,地理区域层次结构包含国家/地区-区域-城市,其中,某些城市没有父代“州”或“省”,例如“华盛顿特区”、“梵蒂冈城”。 当某个层次结构具有空白成员时,它通常降低到不同的(或不规则的)级别。
1400 兼容级别的表格模型有一个额外的针对层次结构的“隐藏成员”属性。 默认设置假定在任何级别都没有空白成员。 将层次结构添加到数据透视表或报表时,“隐藏空白成员”设置将从层次结构中排除空白成员。
本课预计完成时间:20 分钟
先决条件
本补充课程文章是表格建模教程的一部分。 在执行本补充课程中的任务之前,应当已完成了前面的所有课程,或者具有已完成的“Adventure Works Internet 销售”示例模型项目。
如果已经将“AW Internet 销售”项目创建为教程的一部分,则模型中尚未包含任何不规则的数据或层次结构。 若要完成本补充课程,必须首先通过添加一些其他表并创建关系、计算列、度量值和新的 Organization 层次结构来制造问题。 该部分需要花费大约 15 分钟。 然后,需要花费几分钟时间来解决此问题。
添加表和对象
向模型中添加新表
在表格模型资源管理器中,展开“数据源”,然后右键单击连接>“导入新表”。
在导航器中,选择“DimEmployee”和“FactResellerSales”,并单击“确定”。
在查询编辑器中,单击“导入”。
创建以下关系:
表 1 列 筛选器方向 表 2 列 活动 FactResellerSales OrderDateKey Default DimDate Date 是 FactResellerSales DueDate Default DimDate 日期 否 FactResellerSales ShipDateKey Default DimDate 日期 否 FactResellerSales ProductKey Default DimProduct ProductKey 是 FactResellerSales EmployeeKey 到两个表 DimEmployee EmployeeKey 是 在“DimEmployee”表中,创建以下计算列:
路径
=PATH([EmployeeKey],[ParentEmployeeKey])
FullName
=[FirstName] & " " & [MiddleName] & " " & [LastName]
Level1
=LOOKUPVALUE(DimEmployee[FullName],DimEmployee[EmployeeKey],PATHITEM([Path],1,1))
Level2
=LOOKUPVALUE(DimEmployee[FullName],DimEmployee[EmployeeKey],PATHITEM([Path],2,1))
Level3
=LOOKUPVALUE(DimEmployee[FullName],DimEmployee[EmployeeKey],PATHITEM([Path],3,1))
级别 4
=LOOKUPVALUE(DimEmployee[FullName],DimEmployee[EmployeeKey],PATHITEM([Path],4,1))
Level5
=LOOKUPVALUE(DimEmployee[FullName],DimEmployee[EmployeeKey],PATHITEM([Path],5,1))
在“DimEmployee”表中,创建一个名为“Organization”的层次结构。 按顺序添加以下列:“Level1”、“Level2”、“Level3”、“Level4”、“Level5”。
在“FactResellerSales”表中,创建以下度量值:
ResellerTotalSales:=SUM([SalesAmount])
使用“在 Excel 中分析”打开 Excel 并自动创建一个数据透视表。
在数据透视表中,将DimEmployee 表中的组织层次结构添加到行,将 FactResellerSales 表中的 ResellerTotalSales 度量值添加到 Values。
如数据透视表中所示,该层次结构显示了不规则的行。 许多行中显示了空白成员。
通过设置“隐藏成员”属性修复不规则层次结构
在“表格模型资源管理器”中,展开“表”>“DimEmployee”>“层次结构”>“Organization”。
在 “属性>”“隐藏成员”中,选择“ 隐藏空白成员”。
回到 Excel 中,刷新数据透视表。
现在看起来好多了!