角色扮演维度的计算度量?

时间:2014-10-13 11:39:02

标签: reporting-services ssas mdx

我有一个基于ssas多维数据集的ssrs报告。在报告中,我想按组织结构对公司的结果进行分组。结构可以每年变化,历史保持在SCD 2维度。组织结构分为4个级别(部门,工作区,基础单位,负责单位)。所有结果都在最低级别注册。一个通常的行动是在一个部门之间移动一个Resonsible单位。

在报告中,我希望有2列,第一列中选​​择年份的结果和第二列中上一年的结果。用户可以选择他/她想要运行报告的年份。在立方体中,我创建了两个计算度量,Result_current_year和Result_previous_year。我的事实行使用仓库ID(AE_WID_HISTORY)连接到维度。

现在我的问题。这些措施必然适用于该年度的组织结构。这不是我的客户想要的。他们希望根据当年的组织结构比较两年的结果。

我的解决方案是在事实表中创建一个新列,该列将外键保存到代表下一年组织结构的维度行。问题是创建行时该值不存在。为了实现这一点,我必须在一年后循环事实表并使用正确的值更新所有行。在立方体中,我将创建一个角色扮演维度,代表下一年的组织结构。在我计算的度量“Result_previous_year”中,我将使用此角色扮演维度。

这是否可行,如果是,那么计算出的度量“Result_previous_year”的MDX如何显示?

1 个答案:

答案 0 :(得分:0)

老实说,我认为你的问题定义是你的答案。

  

他们希望根据当年的组织结构比较两年的结果

这意味着没有必要经历实施SCD的所有麻烦。

您只需要维度结构的当前快照,并确保所有事实都具有负责单位的实际ID(而不是仓库生成的ID)。这样,无论RU明年在哪里结束,所有的销售历史都将自动随之移动到下一年的组织结构中。

至于去年的MDX,它取决于你的案例中结构的具体细节,但基本上是挂钩到[DimDate]。[Year] .CURRENTMEMBER和.LAGing应该是找到所需的全部内容前一年'会员。考虑创建相对时间层次结构,其中包含当前年份,上一年度,当前月份等。这使得报表开发变得更加方便!编写查询MDX时,可以独立于度量重用这些相关项。这样你就可以避免创建基于年份的措施了。