我有以下简单的 MDX 从我的数据立方体中获取数量:
SELECT NON EMPTY
{
[Measures].[QTY]
} ON COLUMNS FROM
(
SELECT
(
[DATE].[YEAR].&[2022] : null
) ON COLUMNS FROM [MY_DATA_CUBE]
)
如您所见,DATE.YEAR 维度的下限范围在此处进行了硬编码(2022 年)。没有上限(空),所以这就像 DATE.YEAR >= 2022。
我想要具有动态值的 MDX(当前年份 - 2)。如何做到这一点?
在旧的 MDX 中,您可以使用 strToMember :
SELECT
NON EMPTY { [Measures].[QTY] } ON COLUMNS
FROM
(
SELECT
{ strToMember("[DATE].[YEAR].&["+Format(now(), “yyyy”)+"]")
:
strToMember("[DATE].[YEAR].&["+Format(now(), “yyyy”)+"]").lag(2) } on COLUMNS
FROM [MY_DATA_CUBE]
)
在icCube中你可以添加一些新功能:
SELECT
NON EMPTY { [Measures].[QTY] } ON COLUMNS
FROM [MY_DATA_CUBE]
[FILTERBY][2] [DATE].[YEAR].[dtAsOfToday][1]() : [DATE].[YEAR].[dtAsOfToday][1]().[dtMinusYears][3](2)