过滤器中的MDX动态年份

问题描述 投票:0回答:1

我有以下简单的 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
1个回答
0
投票

在旧的 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)
© www.soinside.com 2019 - 2024. All rights reserved.