2011-11-26 60 views
2

我也有事实表有两个日期列:开始日期和FinishDate:措施之一在两个不同的层面

enter image description here

而且我已经有两个不同的关系链接与事实表时间表。

我已经创建了基于时间表时间维度,其中包括这个维度来我的立方体:

enter image description here

所以结果我有一个基于时间表中的两个不同的维度(Created_On和Updated_On) 。

现在我想浏览我的立方体,我想是两个数值:已在时间和已在同一时间内被更新的事实计数一段时间被创建的事实计数。

我可以分别得到他们每个人,但不能在同一时间:

enter image description here

我怎样才能得到它?我是否需要更改仓库结构?我需要更换我的魔方吗?或者我需要在这种情况下使用MDX?

回答

0

MDX Calculated members是你在找什么。我们需要的是将维度从“开始”更改为“完成”日期。如何将开始日期转换为完成日期?

我们可以使用一个字符串操作和变化“手动”维度的名称:

StrToMember( REPLACE([StartDate].currentmember.uniqueName, "StartDate", "FinishDate") 

这一点,如果这两个日期方面分享它们的结构,将从“开始日期”的成员更改为“完成日期'维度。

现在我们可以通过创建一个元组只需创建我们的措施:

WITH MEMBER [MyMeasureOnFinishDate] AS ([Measure].[MyMeasure], [StartDate].defaultmember,StrToMember(REPLACE([StartDate].currentmember.uniqueName, "StartDate", "FinishDate") 

这不是测试,但你的想法,你会如何解决这个

+0

有在MS SQL Analysis Services中的REPLACE功能? – demas

+0

你应该有访问的VBA和Excel函数的列表 - > http://msdn.microsoft.com/en-us/library/aa178231%28v=sql.80%29。aspx,但这取决于您的安装 – ic3

1

我已经找到了解决办法:

  • 我在事实表中有一个事实的两个记录 - 一个事实的开始和一个事实的结尾
  • 我有一个时间fi视场中的事实表
  • 我添加两个int字段的事实表(A和B)。这些字段的值是(1,0)用于开始记录和(0,1)用于结束记录。

所以,我有这样的记录:

fact1 01.10.2011 1 0 
fact1 04.10.2011 0 1 
fact2 02.10.2011 1 0 
fact2 10.10.2011 0 1 

所以,总和(A)给出了每起事实日期的计数。总和(B)给出了每个日期的结束事实计数。