我无法通过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。
感谢您对我的问题的输入和帮助!
答案 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作为链接。