【发布时间】:2016-02-15 16:07:08
【问题描述】:
自从一个星期以来,这个任务一直困扰着我,我找不到解决方案。 我正在尝试扩展我的同事构建的简单 SSAS 报告解决方案。目标是轻松访问销售数字的 ytd 和 pytd 值。 一切都很完美,只有一件小事没有意义,在我看来,这是一个不错的功能。
我的问题是,当我将 pytd 字段计算为 MDX 中的计算成员并在报告中使用它时,除了顶部“年份”级别的实际年份值之外,一切正常。它显示 2015 年的总数,而不是 2015 年 1 月至 2 月的 pytd 值。
为了使它更明显,我的查询是: pytd Query, works perfect, drilldown is no problem
这是我的结果的示例图片: sample result
如您所见,2016 年的 pytd 数据是 2015 年的总数。但我想在那里查看 2015 年 2 月的年初至今值。 为了清楚起见,我可以通过深入查看每月级别的数据来轻松查看信息。但我们也希望看到有关年级的正确信息。
所以我尝试调整我的 mdx 语句以在实际年份行中显示不同的 pytd 值:
如果(
[Zeit].[Year - Month - Date].CurrentMember is [Calendar 2016],
([Measures].[Sales Amount pytd],[Zeit].[Year - Month - 日期].[月].[2016 年 2 月]),
聚合( PeriodsToDate([Zeit].[Year - Month - Date].[Year], 并行周期(
[Zeit].[Year - Month - Date].[Year], 1、 [Zeit].[Year - Month - Date].CurrentMember ) ),[措施].[Umsatz]))
所以查询本身可以正常工作,但现在我试图使其动态化,所以我需要一个参数或一组参数来将实际月份 + 当前年份输入过滤器: Format(Now(),"MMMM yyyy") 结果为 'February 2016'
所以从语法来看,它应该看起来/像这样工作: ([Measures].[Sales Amount pytd],[Zeit].[Year - Month - Date].[Month].[Format(Now(),"MMMM yyyy")])
但它不起作用。 我的同事通过 SSAS 的“添加 BI”向导添加了时间维度。我不喜欢它的建立方式,每个月都有年份,但我必须处理它。我认为更改时间维度具有使项目无法使用的高风险。
有人知道如何通过参数或其他方式动态添加当前年份和月份吗?
我期待您的想法。 :)
【问题讨论】:
标签: dynamic reference sql-server-2008-r2 ssas mdx