MDX openingperiod, closingperiod 和 sum(measure) return 相同的值

MDX openingperiod, closingperiod and sum(measure) return the same value

在我们的多维数据集中,我们希望在月初和月末形成商品数量及其价值的概览。所以我想使用 MDX 表达式 openingperiod()closingperiod(),它们应该提供这些指标。

在 Visual Studio 中我们有以下代码(仅适用于 openingperiod(),因为 closingperiod() 具有相同的语法)

(OPENINGPERIOD
(
[Date Booking].[Month].[Month],
[Date Booking].[Month].currentmember
), 
[Measures].[AT Amount])

openingperiod()closingpeiod() 的结果与度量 [AT 金额] = sum(Amount)

的结果相同

如文档和示例所示,我预计会有三种不同的结果。但是三个结果都是一样的

查阅页数:

https://docs.microsoft.com/en-us/sql/mdx/openingperiod-mdx?view=sql-server-2017

https://www.sqlservercentral.com/steps/stairway-to-mdx-level-12-mdx-timedate-series-functions-openingperiod-and-closingperiod-functions

将您的代码与示例进行比较,我怀疑您正尝试将此技术用于单级层次结构。

该示例适用于多级层次结构年/学期/季度/月/日期。在这种情况下,当使用月份级别对您的度量进行切片时,CURRENTMEMBER 属性 returns 每个月份成员,首先应用于 return 日期级别的子成员(如在 OPENINGPERIOD 的第一个参数中指定)。

使用您的代码,CURRENTMEMBER 属性 returns 每个月份成员,它在月份级别应用,因此它将 return OPENINGPERIOD 或 CLOSINGPERIOD 的相同月份成员(或对 SUM 使用相同的 Month 成员)。

我将构建一个日期级别低于月份级别的日历层次结构(其他级别是可选的),然后我将您的代码编辑为:

(OPENINGPERIOD
(
[Date Booking].[Calendar].[Date],
[Date Booking].[Calendar].currentmember
), 
[Measures].[AT Amount])