SSAS和2型SCD数据

时间:2015-01-09 23:52:32

标签: ssas scd

我无法通过SSAS和Type 2 SCD数据获得预期结果。下面,我列出了我正在使用的简单表,我得到的SSAS输出以及我希望的SSAS输出。我觉得SSAS应该能够像我想要的那样检索数据;我相信我只是难以正确地“挂钩”:)。

我正在使用的表

DimClient
ID (PK)     AltID (Business Key)     Name        Start Date     End Date
1           1                        Client A    01/01/1995     01/31/1995
2           1                        Client ABC  02/01/1995     NULL

FactSales
ID (PK)     ClientID    Sales     SalesDate
1           1           $100      01/15/1995
2           1           $200      02/15/1995
3           1           $300      03/15/1995

另外还有一个DimDate表,其每个日期都是从01/01/1900 - > 12/31/2050作为PK进入,加上他们的各种属性,如日期,星期几等等。

输出(当前与预期)

我试图按月查看客户数据,我明白了:

Month       Client      Sales
January     Client A    $100
February    Client A    $200
March       Client A    $300

当我期待(并希望)看到这个时:

Month       Client      Sales
January     Client A    $100
February    Client ABC  $200
March       Client ABC  $300

为什么我的SSAS多维数据集无法识别客户端A在2月和3月被更改为客户端ABC?

希望能够提供一些有关我的立方体当前连接方式的见解:

-FactSales ClientID链接到DimClient AltID
-FactSales SalesDate链接到我的DimDate PK字段

我无法通过任何方式将DimClient链接到DimDate。

感谢您对我的问题的输入和帮助!

1 个答案:

答案 0 :(得分:0)

您需要使用其他键来链接FactSales和DimClient。

它的DimClient ID和下面描述的新密钥。

然后将另一个密钥添加到FactSales(让我们说ClientSCD)并将其映射到ETL阶段,如下所示:

update f set f.ClientSCD = isnull(c.ID,0)
/* if you have default NONE member with ID = 0 */
FactSales f
left join DimClient c
on f.ClientID = c.AltID
and f.SalesDate between c.[Start Date] and isnull(c.[End Date],'12/31/9999')

在多维数据集中使用DimClient.ID和FactSales.ClientSCD作为链接。