我的数据仓库中有这个结构
DimCustomer
-id (pk)
-Name
-Country
-datestart
-dateend
FactBalance
-idCustomer (pk) (fk [DimCustomer.id])
-idTime (pk) (fk [DimDate.DateSK])
-Balance
Customer Dimension在国家/地区更改时有多行,FactBalance在一段时间内每天都有多行。
以下是一些示例数据:
DimCustomer
1 JoeBloggs England 2012-01-01 2012-01-04
2 JoeBloggs France 2012-01-05 NULL
FactBalance
1 20120101 12334.0
1 20120102 12334.0
1 20120103 12334.0
1 20120104 12334.0
2 20120105 12334.0
2 20120106 12334.0
我遇到的问题是,当我在浏览器中查看我的多维数据集并使用DimCustomer.Country和FactBalance.Balance(其聚合设置为LastNonNull)时,它会显示两个结果
England 12334.0
France 12334.0
显然,SCD中的每个客户条目的最后一个非空值,但是如何设置维度以便它只显示整个客户的最后一个?
答案 0 :(得分:0)
我会将Business Key(我认为它是你的例子中的Name)添加到Fact(我会将它添加为Fact表中的列,或者你可以通过SQL View)。
然后我将构建Customer维度的替代版本,该版本仅显示当前记录并使用Business Key作为其关键。
最后,我会将新维度添加到多维数据集,并使用业务键将其与事实相关联。