父子关系维度的使用
SQL Server 2005分析服务(以下简称分析服务)的父子维度(Parent-Child dimension)能够快速帮助企业解决上下级人员业务统计的问题。具体来讲,父子维度可以帮助解决以下问题:
1. 企业内部门上下级关系如何通过树形结构一目了然的显示?
2.有些部门经理也需要完成销售数据,而有些不用。如何快速统计包括部门经理在内的部门成员的销售情况,同时又计算部门整体销售情况?
在技术层面上来说,一般会用一张表存放企业员工的身份信息,职务,隶属部门,部门经理等个人信息。比如这样的一张表
EmployeeID是员工在企业内部唯一的工号,NationalIDNum是员工身份证号,ManagerID是员工经理的工号,title是员工的职务。
分析服务的父子维度可以快速利用这样的表来实现上文提到的问题。我用Business Intelligence Development Studio(简称BIDS)来做一个演示。
1. 创建数据源。连接到业务数据库上。
2.创建数据源视图。我只选择员工这张表来做演示。该表包含了上面提到的几个关键字段。
3. 创建维度,不使用自动构建功能,一切任务都以手动完成。到下一步。
a.选择在第二步中创建的数据源视图。到下一步。
b.选择标准维度。到下一步。
c.选择EmployeeID(员工工号)作为关键列,关键列中包含唯一的记录。选择Title(职务)作为属性成员名称。到下一步。
d.在选择维度属性页面,选择Manager ID(部门经理)这个属性。只有选择这个属性,维度向导会识别出父子关系。到下一步。
e.选择常规(Regular)作为维度类型。到下一步。
f.维度向导询问是否要定义父子关系。选择定义父子关系,并且把Manager ID作为上级属性。到下一步。
g.保存维度叫员工。
4.部署并处理SSAS项目后,可以浏览员工这个维度,这时,可以看到按照职务级别显示的树形结构
5.这个树形结构的特点在于,部门经理职务会出现两次。一次出现在部门内,一次出现在部门的上一个级别。这样的好处是既可以统计作为部门一员而完成的销售数据,又可以以部门经理身份显示部门整体的销售数据,十分方便。
6.为了进一步区分部门经理职务,可以选择父子关系层系(我把它重命名为员工们),在它的属性里的父子属性区域,找到有数据名称的成员(MembersWithDataCaption),加上*(经理)
7.重新部署并处理后,如下图