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
将您的代码与示例进行比较,我怀疑您正尝试将此技术用于单级层次结构。
该示例适用于多级层次结构年/学期/季度/月/日期。在这种情况下,当使用月份级别对您的度量进行切片时,CURRENTMEMBER 属性 returns 每个月份成员,首先应用于 return 日期级别的子成员(如在 OPENINGPERIOD 的第一个参数中指定)。
使用您的代码,CURRENTMEMBER 属性 returns 每个月份成员,它在月份级别应用,因此它将 return OPENINGPERIOD 或 CLOSINGPERIOD 的相同月份成员(或对 SUM 使用相同的 Month 成员)。
我将构建一个日期级别低于月份级别的日历层次结构(其他级别是可选的),然后我将您的代码编辑为:
(OPENINGPERIOD
(
[Date Booking].[Calendar].[Date],
[Date Booking].[Calendar].currentmember
),
[Measures].[AT Amount])
在我们的多维数据集中,我们希望在月初和月末形成商品数量及其价值的概览。所以我想使用 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
将您的代码与示例进行比较,我怀疑您正尝试将此技术用于单级层次结构。
该示例适用于多级层次结构年/学期/季度/月/日期。在这种情况下,当使用月份级别对您的度量进行切片时,CURRENTMEMBER 属性 returns 每个月份成员,首先应用于 return 日期级别的子成员(如在 OPENINGPERIOD 的第一个参数中指定)。
使用您的代码,CURRENTMEMBER 属性 returns 每个月份成员,它在月份级别应用,因此它将 return OPENINGPERIOD 或 CLOSINGPERIOD 的相同月份成员(或对 SUM 使用相同的 Month 成员)。
我将构建一个日期级别低于月份级别的日历层次结构(其他级别是可选的),然后我将您的代码编辑为:
(OPENINGPERIOD
(
[Date Booking].[Calendar].[Date],
[Date Booking].[Calendar].currentmember
),
[Measures].[AT Amount])