使用2个日期维度计算MDX中的记录

时间:2014-08-28 13:14:16

标签: ssas mdx

我是MDX的新手(我的背景是T-SQL)。我有一个事实表/立方体基本上有2列

[Start Date], [Finish Date]

20140101, -1

20140101, 20140401

20140301, 20140501

...

我有一个基于这些列计算记录的简单措施

计算在某个日期开始(或完成)的人数是一项简单的任务,但我想知道一段时间内的累计总数。

查看上面的示例:

Month/Year, Started, Finished, CumulativeTotal

01/2014, 2, 0, 2

02/2014, 0, 0, 2

03/2014, 1, 0, 3

04/2014, 0, 1, 2

05/2014, 0, 1, 1

“ - 1”是我的日期维度中“未定义”值的外键。这意味着记录尚未完成,因此,它必须在开始日期之后的每个月出现。

我怎样才能做到这一点?我只是找不到任何参考。或者我只是不知道该寻找什么(可能是真的)。​​

1 个答案:

答案 0 :(得分:1)

不要回避回答您的问题,但这不是用于填充多维数据集的事实表的好设计。您想要创建一个星型模式,因此更好的设计将是这样的:

PersonId  Month  Count

其中PersonId是People表的外键, Month是DateTime,它是Time维表的外键, 计数是1或0,取决于该人是否应该在该月计算。

要从您拥有的表中获得所需的结果,最好使用直接SQL。这不是Cubes和MDX要处理的事情。