我正在尝试设计一个多维数据集,让我可以看一下过去几年使用SSAS的月收入。我使用Type 2 SCD构建了收益事实表,结果如下表所示:
Account Number MonthlyPayment Start Date End Date
102939 115 01/01/2001 03/31/2001
102939 75 04/01/2001 NULL
102940 107 02/01/2001 NULL
现在,我正在试图找出每个月的每月收入,例如:
01/01: 115
02/01: 222
05/01: 182
我已经构建了一个多维数据集,但它只报告特定月份的收入,因为它在开始日期链接,例如。
01/01: 115
02/01: 107
02/01: 0
04/01: 75
显然我错过了一些东西,因为在SSIS中构建事实表之后我能找到的所有链接都停止了,并且似乎暗示一旦数据格式正确,这是一块蛋糕。我是否需要编写MDX计算度量,如果是,如何?或者是否有一些我应该看的更简单的东西。
非常感谢任何建议!
答案 0 :(得分:1)
这不是一个简单的电话。
您希望在单元格级别(也称为行级别)定义一种新类型,即付款(金额,开始,结束),当汇总时会计算日期以计算金额。
OLAP多维数据集不是为解决这类问题而设计的,因为它们只聚合基本类型(double,int,booleans ......)。我不知道有任何供应商在这个时候做这件事。
标准方法是每月添加金额:
Account Number MonthlyPayment Date
102939 115 01/01/2001
102939 115 02/01/2001
102939 115 03/01/2001
102939 75 04/01/2001
...
102940 107 02/01/2001
102940 107 03/01/2001
102940 107 04/01/2001
...
此解决方案的问题是原始行数与新行(内存)的数量以及如何生成“新”表。
另一个是找到可以与您合作的供应商,以便更好地解决此问题,如果SSAS不是必须的话。
答案 1 :(得分:0)
您添加包含所有日期的时间维度,即使事实表未使用它们也是如此。 SSAS allows you to generate a Time dimension,其中包含您可以在MDX查询中使用的月份列。
对不起,我没有完全理解你所定义的问题。 我认为你必须将表非规范化为
Account Number PaymentAmount Payment Date
102939 115 01/01/2001
102939 115 02/01/2001
102939 115 03/01/2001
102939 75 04/01/2001
102940 107 02/01/2001
最终将以表格大小为代价简化计算。