我在使用 SSAS 和类型 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 表,其中包含从 1900 年 1 月 1>日至 2050 年 12 月 31 日的所有日期作为 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
-事实销售销售日期链接到我的暗影日期PK字段
我无法以任何方式将DimClient链接到DimDate。
感谢您的输入和帮助解决我的问题!
您需要使用另一个密钥来链接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 作为链接。