1

我正在寻找以下问题的优化解决方案 -

我有一个包含日期维度的多维数据集,该维度具有一个层次结构月->季度->年。

我创建了一个立方体,一切都很好。现在我的 ssrs 报告需要我的所有维度客户销售属性以及上个月利润、当月利润、最近 6 个月利润(每月列出)、上个月交易、去年利润与当年利润等计算。

因为我已经创建了一个层次结构,所以我每个月、每年和每个季度的所有计算都已经在 CUBE 中预先计算了。现在要检索上面列出的计算,进行这些时间计算的最佳方法是什么?将这些计算放在 CUBE 或 SSRS 数据集中的什么位置?

您能否提出一些好的方法以及如何做到这一点?

4

3 回答 3

1

尽管当然可以(如果您对 MDX 感到满意)编写查询以将所有这些计算放入数据集中,但将这些类型的计算放入多维数据集中通常更好地在许多报表中重用。这样,如果您决定使用 Excel 或第三方应用程序,其他工具也可以使用时间计算。

您可以使用计算选项卡中的商业智能向导来执行此操作 - 这是 SSAS 2005 的一篇文章,仍然适用于更高版本:http ://www.obs3.com/pdf/A%20Different%20Approach%20to%20Time% 20计算%20in%20SSAS.pdf

这是做类似事情的另一种方法:http: //www.bidn.com/articles/mdx-and-dmx/169/mdx-time-calculations-done-the-right-way

更新:对于从现在起处理过去 6 个月等日期范围的命名集,请参阅这篇文章: http: //my.opera.com/duncans/blog/using-custom-sets-in-analysis-services-to-deliver -特殊日期范围到最终用途

于 2012-07-13T19:29:21.123 回答
0

不确定我是否明白你,但问题是你需要获取动态值并且你所有的东西都是硬编码的?

您可以使用 prevmemebr 函数获取层次结构中的前一个成员:

([Date].[Calendar].PrevMember, <your measure here>)

其中日期是维度,日历是层次结构。因此,如果您按月浏览,它将获得最近几个月的数据,例如

于 2012-07-16T13:00:43.237 回答
0

您必须使用 mdx 查询计算上个月利润、当月利润、最近 6 个月利润作为多维数据集“计算”中的度量。我最近为我的“收入比较报告”做了这个,我计算last month's revenuelast2monthsrevenue使用priorquarterrevenue了它们。有效!

于 2012-10-02T02:11:15.723 回答