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

Reporting services 角色扮演维度的计算度量?,reporting-services,ssas,mdx,Reporting Services,Ssas,Mdx,我有一份基于ssas多维数据集的ssrs报告。在报告中,我想按组织结构对公司的业绩进行分组。结构每年都会发生变化,历史记录保存在SCD2维度中。组织结构分为4级:部门、工作区、基本单位、责任单位。所有结果均在最低级别注册。通常的做法是在分区之间移动一个可分辨单位 在报告中,我希望有两列,第一列是所选年份的结果,第二列是上一年的结果。用户可以选择要运行报告的年份。在多维数据集中,我创建了两个计算度量值,Result\u current\u year和Result\u previous\u year

我有一份基于ssas多维数据集的ssrs报告。在报告中,我想按组织结构对公司的业绩进行分组。结构每年都会发生变化,历史记录保存在SCD2维度中。组织结构分为4级:部门、工作区、基本单位、责任单位。所有结果均在最低级别注册。通常的做法是在分区之间移动一个可分辨单位

在报告中,我希望有两列,第一列是所选年份的结果,第二列是上一年的结果。用户可以选择要运行报告的年份。在多维数据集中,我创建了两个计算度量值,Result\u current\u year和Result\u previous\u year。我的事实行通过仓库ID AE_WID_HISTORY连接到维度

现在来谈谈我的问题。这些措施与当年的组织结构有关。这不是我的客户想要的。他们希望根据当年的组织结构,比较这两年的结果

我的解决方案是在事实表中创建一个新列,该列保存表示下一年组织结构的维度行的外键。问题是在创建行时该值不存在。为了实现这一点,我必须在第二年遍历事实表,并用正确的值更新所有行。在多维数据集中,我将创建一个角色扮演维度,表示未来几年的组织结构。在我上一年计算的测量结果中,我将使用这个角色扮演维度


这可能吗?如果可能,上一年计算的测量结果的MDX会是什么样子?

我真的认为你的问题定义就是你的答案

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

这意味着在实现SCD时,没有必要经历所有的麻烦

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


至于上一年的MDX,这取决于您案例中的结构细节,但基本上与[DimDate].[year].CURRENTMEMBER和.Lagging挂钩,这应该是查找“上一年”成员所需的全部内容。同时考虑创建包含当前年、前一年、当前月份等的相对时间层次结构,这使得报表开发变得更加方便!当您编写查询MDX时,您可以独立于度量重用这些相对项。这样,您也可以避免创建基于年份的度量。

这将适用于已实施的当前年度报告,但不适用于历史报告。在历史报告中,用户可以选择要运行报告的年份。这意味着,与2012年的结果相比,如果您运行2013年的报告,则当前快照是无用的。好的,如果您实际上是指“当前年份”是用户在提示中选择的年份,而不是当前日历年,那么您处理公司dim的解决方案似乎是合理的。一旦你有了新的结构,你将不得不更新上一年。。。对于年份列,我仍然会保持简单,或者在多维数据集中创建一个显示当前成员滞后1的成员,或者更简单,只是滞后于报告本身中选择的提示值year。