如何让 MDX openingperiod() 在 ssas 多维数据集中作为计算度量工作
How to get MDX openingperiod() to work as calculated measure in ssas cube
我想在我们的多维数据集中使用 MDX 函数 openingperiod() 和 closingperiod(),但无法使其正常工作。
这是否真的可行,或者这些函数是否仅适用于 MDX 查询?
我用来学习openingperiod()的主要两篇文章是:
https://www.sqlservercentral.com/steps/stairway-to-mdx-level-12-mdx-timedate-series-functions-openingperiod-and-closingperiod-functions
https://docs.microsoft.com/en-us/sql/mdx/openingperiod-mdx?view=sql-server-2017
上面文档中openingperiod()和closingperiod()这两个函数只在查询中使用,但我想将它们集成到cube中。
我用作常规查询的代码是:
sum(
openingperiod
(
[Date Booking].[Year Month],
[Date Booking].[Year Month].currentmember
),
[Measures].[Goods Amount])
结果应该是月初的货量,结果是NULL
.
我使用 sum
获得指向正确成员的有效语法。
我将尝试从 Adventure Works 示例数据库中为您提供想法。
这应该是在多维数据集中创建计算成员的语法([Adventure Works] 是此示例中的多维数据集名称),因此您可以稍后调用它:
create member [Adventure Works].Measures.MyMeasure4
as
(OpeningPeriod([Date].[Calendar].[Date],[Date].[Calendar].Currentmember.Parent), [Measures].[Internet Sales Amount])
然后你应该这样调用它以查看结果:
select {Measures.MyMeasure4, [Measures].[Internet Sales Amount]} on 0,
[Date].[Calendar].members on 1
from [Adventure Works]
因此,对于 1 月,MyMeasure4 将具有 1 月 1 日成员的值(开放期间的值),对于 2 月,它将具有从 2 月 1 日开始的值,如果这是您的意图的话。
我想在我们的多维数据集中使用 MDX 函数 openingperiod() 和 closingperiod(),但无法使其正常工作。
这是否真的可行,或者这些函数是否仅适用于 MDX 查询?
我用来学习openingperiod()的主要两篇文章是: https://www.sqlservercentral.com/steps/stairway-to-mdx-level-12-mdx-timedate-series-functions-openingperiod-and-closingperiod-functions
https://docs.microsoft.com/en-us/sql/mdx/openingperiod-mdx?view=sql-server-2017
上面文档中openingperiod()和closingperiod()这两个函数只在查询中使用,但我想将它们集成到cube中。
我用作常规查询的代码是:
sum(
openingperiod
(
[Date Booking].[Year Month],
[Date Booking].[Year Month].currentmember
),
[Measures].[Goods Amount])
结果应该是月初的货量,结果是NULL
.
我使用 sum
获得指向正确成员的有效语法。
我将尝试从 Adventure Works 示例数据库中为您提供想法。
这应该是在多维数据集中创建计算成员的语法([Adventure Works] 是此示例中的多维数据集名称),因此您可以稍后调用它:
create member [Adventure Works].Measures.MyMeasure4
as
(OpeningPeriod([Date].[Calendar].[Date],[Date].[Calendar].Currentmember.Parent), [Measures].[Internet Sales Amount])
然后你应该这样调用它以查看结果:
select {Measures.MyMeasure4, [Measures].[Internet Sales Amount]} on 0,
[Date].[Calendar].members on 1
from [Adventure Works]
因此,对于 1 月,MyMeasure4 将具有 1 月 1 日成员的值(开放期间的值),对于 2 月,它将具有从 2 月 1 日开始的值,如果这是您的意图的话。