补充课程 - 不规则层次结构

适用于:SQL Server 2017 及更高版本的 Analysis Services Azure Analysis Services Fabric/Power BI Premium

在本补充课程中,将解决对在不同级别包含空白值(成员)的层次结构进行透视时的一个常见问题。 例如,某个组织的高级经理同时具有部门经理和非经理作为直接下属。 或者,地理区域层次结构包含国家/地区-区域-城市,其中,某些城市没有父代“州”或“省”,例如“华盛顿特区”、“梵蒂冈城”。 当某个层次结构具有空白成员时,它通常降低到不同的(或不规则的)级别。

包含空白值的员工层次结构的屏幕截图。

1400 兼容级别的表格模型有一个额外的针对层次结构的“隐藏成员”属性。 默认设置假定在任何级别都没有空白成员。 将层次结构添加到数据透视表或报表时,“隐藏空白成员”设置将从层次结构中排除空白成员。

本课预计完成时间:20 分钟

先决条件

本补充课程文章是表格建模教程的一部分。 在执行本补充课程中的任务之前,应当已完成了前面的所有课程,或者具有已完成的“Adventure Works Internet 销售”示例模型项目。

如果已经将“AW Internet 销售”项目创建为教程的一部分,则模型中尚未包含任何不规则的数据或层次结构。 若要完成本补充课程,必须首先通过添加一些其他表并创建关系、计算列、度量值和新的 Organization 层次结构来制造问题。 该部分需要花费大约 15 分钟。 然后,需要花费几分钟时间来解决此问题。

添加表和对象

向模型中添加新表

  1. 在表格模型资源管理器中,展开“数据源”,然后右键单击连接>“导入新表”。

  2. 在导航器中,选择“DimEmployee”和“FactResellerSales”,并单击“确定”。

  3. 在查询编辑器中,单击“导入”。

  4. 创建以下关系

    表 1 筛选器方向 表 2 活动
    FactResellerSales OrderDateKey Default DimDate Date
    FactResellerSales DueDate Default DimDate 日期
    FactResellerSales ShipDateKey Default DimDate 日期
    FactResellerSales ProductKey Default DimProduct ProductKey
    FactResellerSales EmployeeKey 到两个表 DimEmployee EmployeeKey
  5. 在“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)) 
    
  6. 在“DimEmployee”表中,创建一个名为“Organization”的层次结构 按顺序添加以下列:“Level1”、“Level2”、“Level3”、“Level4”、“Level5”。

  7. 在“FactResellerSales”表中,创建以下度量值

    ResellerTotalSales:=SUM([SalesAmount])
    
  8. 使用“在 Excel 中分析”打开 Excel 并自动创建一个数据透视表。

  9. 数据透视表中,将DimEmployee 表中的组织层次结构添加到,将 FactResellerSales 表中的 ResellerTotalSales 度量值添加到 Values

    电子表格的屏幕截图,其中显示了“数据透视表字段”对话框。

    如数据透视表中所示,该层次结构显示了不规则的行。 许多行中显示了空白成员。

通过设置“隐藏成员”属性修复不规则层次结构

  1. 在“表格模型资源管理器”中,展开“表”>“DimEmployee”>“层次结构”>“Organization”。

  2. “属性>”“隐藏成员”中,选择“ 隐藏空白成员”。

    属性窗口的屏幕截图,其中箭头指向“隐藏空白成员”选项。

  3. 回到 Excel 中,刷新数据透视表。

    没有空白成员的 Employee 层次结构的屏幕截图。

    现在看起来好多了!

另请参阅

第 9 课:创建层次结构
补充课程 - 动态安全性
补充课程 - 详细信息行