【发布时间】:2014-03-13 16:20:56
【问题描述】:
我们有一个员工维度,其中包含我们在其上构建层次结构的经理(父子关系)的自我引用。
DimStaff 表:
| SurrogateKey | BusinessKey | Employee Name | ManagerBusinessKey | StartDate | EndDate |
| 1 | 1 | Manager1 | NULL | 2013-01-01 | 2099-01-01|
| 2 | 2 | Manager2 | NULL | 2013-01-01 | 2099-01-01|
| 3 | 3 | Employee1 | 1 | 2013-01-01 | 2014-01-01|
| 4 | 3 | Employee1 | 2 | 2014-01-02 | 2099-01-01|
事实表:
| StaffKey | DateKey | Measure1 |
| 3 | 20130405 | 10 |
| 4 | 20140203 | 20 |
现在,以这个数据集为例,要求是
1- 能够向下钻取层次结构
Manager1
-> Employee1
-> Measure1=10
Manager2
-> Employee1
-> Measure1=20
2- 选择一个人时聚合每个层次结构级别的值
Employee1 -> Measure1=30
我们怎样才能做到这一点? (问题是我们构建了它,但第二个要求不起作用,因为立方体接受 Employee1 的两个状态作为两个单独的实体并且不会聚合它们。)
【问题讨论】:
-
不应该在代理键上建立层次结构吗? IE。在维度表中添加一列
ManagerSurrogateKey并使用它来定义自引用。
标签: ssas olap business-intelligence olap-cube scd