【问题标题】:SSRS Report using SSAS cube - time calculations使用 SSAS 多维数据集的 SSRS 报告 - 时间计算
【发布时间】:2012-07-13 09:26:39
【问题描述】:

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

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

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

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

您能否建议一些好的方法以及如何去做?

【问题讨论】:

  • 我不知道。您的问题是针对那些计算字段或 .将此计算(多维数据集或数据集)放在哪里..?
  • 在哪里放置以及如何放置?你能解释一下吗

标签: reporting-services ssas cube


【解决方案1】:

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

您可以使用“计算”​​选项卡中的商业智能向导来执行此操作 - 这是 SSAS 2005 的一篇文章,它仍然适用于更高版本:http://www.obs3.com/pdf/A%20Different%20Approach%20to%20Time%20Calculations%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-special-date-ranges-to-end-use

【讨论】:

  • 感谢 Stacia 的友好回答。它是有益的。但我仍然有一些疑问 - 1. 如何在同一个多维数据集中包含所有时间的计算,如 YTD、过去六个月的单独计算、过去 13 个月的计算。抱歉,我可能会问一个微不足道的问题,但我不清楚这个概念。我有一个时间维度的多维数据集。现在我想在 DimDate 中进行计算,它将分别给我最近 6 个月的计算,这样当我从这个多维数据集创建数据集时,我可以将此计算字段拖到可以显示最近 6 个月计算的报告中?请问可以吗
  • 如果您阅读了我提供的说明,它将解释如何执行此操作。商业智能向导可以为您设置类似的计算,您可以从那里修改它。有些人喜欢将计算作为日期维度的一部分,而其他人则喜欢链接中描述的单独维度。你真的需要尝试一下,看看 YTD 的原型立方体等等。
  • 对于过去六个月或过去 13 个月,您需要创建一个与计算分开的命名集。 YTD 之类的计算是显示单个列的值。当您需要月份列表(6、13、24 或其他)时,您需要一个命名集,它是一个成员列表。这有点棘手,我必须离开一段时间。今天晚些时候我会发布一个解决方案。
  • 在深入探讨之前,我有一个问题要问你。您是否正在寻找从现在起(您查看报告的那一天)过去 6 个月的情况?还是从您拖入数据透视表的日期起的最近 6 个月?
  • 谢谢你 Stacia,我会调查命名集。现在消除了我的困惑:)。您能否指导我了解最近 6/12/13 个月的命名集以及如何在 SSRS 报告中使用它们 - 在数据集中?在我的一份报告中,我必须按单个月份显示过去六个月的利润,并且在另一列中我需要显示 YTD 值。我该如何开发这个?我需要使用命名集和 ytd 计算对吗?如果你能给我看一些文章来提供一些指导会很棒吗? ****是的,我正在寻找从现在开始的最后 6 个月*****非常感谢您的支持
【解决方案2】:

不确定我是否理解您,但问题是您需要获取动态值并且所有内容都是硬编码的?

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

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

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

【讨论】:

    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 2017-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多