Mdx 获取所选期间中关键日期的成员值

Mdx 获取所选期间中关键日期的成员值,mdx,Mdx,在mdx中我需要一个特殊的成员值:在下面的命令中,我为客户选择数据。结果显示customergroup中客户的每月金额、带有姓名的客户ID和客户级别。客户级别将在期间内发生变化 现在我想要的是关键日期的客户级别,即“2013年7月13日”。你知道我如何过滤这个值吗 SELECT { [Measures].[Amount1] ,[Measures].[Amount2] } ON COLUMNS ,NonEmpty ( [Dim Customer].[Cus

在mdx中我需要一个特殊的成员值:在下面的命令中,我为客户选择数据。结果显示customergroup中客户的每月金额、带有姓名的客户ID和客户级别。客户级别将在期间内发生变化

现在我想要的是关键日期的客户级别,即“2013年7月13日”。你知道我如何过滤这个值吗

SELECT 
  {
    [Measures].[Amount1]
   ,[Measures].[Amount2]
  } ON COLUMNS
 ,NonEmpty
  (
      [Dim Customer].[Customer Group ID].Children*
      [Dim Customer].[Customer ID].Children*
      [Dim Customer].[Customer Name].Children*
      [Dim Customer].[Customer Level].Children*
      [Time].[Month].Children
  )
  DIMENSION PROPERTIES 
    MEMBER_CAPTION
   ,MEMBER_UNIQUE_NAME
   ON ROWS
FROM 
(
  SELECT 
    {
        [Time].[Year -  Month -  Date].[Date].&[2013-05-01T00:00:00]
      : 
        [Time].[Year -  Month -  Date].[Date].&[2013-12-01T00:00:00]
     ,
        [Time].[Year -  Month -  Date].[Date].&[2012-05-01T00:00:00]
      : 
        [Time].[Year -  Month -  Date].[Date].&[2012-12-01T00:00:00]
    } ON COLUMNS
  FROM [MyCube]
);

可以创建自定义集。如果您只希望客户在2013年7月13日有活动,那么以下内容就是一个开始:

WITH SET [X] AS
    NonEmpty(
       [Dim Customer].[Customer Level].Children
      ,([Time].[Year -  Month -  Date].[Date].&[2013-07-01T00:00:00])
    )
SELECT 
  {
    [Measures].[Amount1]
   ,[Measures].[Amount2]
  } ON COLUMNS
 ,NonEmpty
  (
      [Dim Customer].[Customer Group ID].Children*
      [Dim Customer].[Customer ID].Children*
      [Dim Customer].[Customer Name].Children*
      [X]*
      [Time].[Month].Children
  )
   ON ROWS
FROM 
(
  SELECT 
    {
        [Time].[Year -  Month -  Date].[Date].&[2013-05-01T00:00:00]
      : 
        [Time].[Year -  Month -  Date].[Date].&[2013-12-01T00:00:00]
     ,
        [Time].[Year -  Month -  Date].[Date].&[2012-05-01T00:00:00]
      : 
        [Time].[Year -  Month -  Date].[Date].&[2012-12-01T00:00:00]
    } ON COLUMNS
  FROM [MyCube]
);

如果我的理解是正确的,您希望仅在日期为2013年7月13日时显示级别,否则将其保留为空。利用您拥有的年-月-日层次结构,您可以尝试以下代码:

WITH
MEMBER [Dim Customer].[Customer Level].[Required Level] AS
IIF
    (
     [Time].[Year -  Month -  Date].CURRENTMEMBER IS [Time].[Year -  Month -  Date].[Date].&[2013-07-13T00:00:00]
     ,NonEmpty
            (
             [Dim Customer].[Customer Level].CHILDREN,
             [Time].[Year -  Month -  Date].[Date].&[2013-07-13T00:00:00]
            )
     ,NULL
    )

SELECT 
  {
    [Measures].[Amount1]
   ,[Measures].[Amount2]
  } ON COLUMNS
 ,NonEmpty
  (
      [Dim Customer].[Customer Group ID].Children*
      [Dim Customer].[Customer ID].Children*
      [Dim Customer].[Customer Name].Children*
      [Dim Customer].[Customer Level].[Required Level]*
      HIERARCHIZE
        (
          {
           [Time].[Year -  Month -  Date].[Month].Children
           +
           [Time].[Year -  Month -  Date].[Date].&[2013-07-13T00:00:00]
          }
        )

  )
  DIMENSION PROPERTIES 
    MEMBER_CAPTION
   ,MEMBER_UNIQUE_NAME
   ON ROWS
FROM 
(
  SELECT 
    {
        [Time].[Year -  Month -  Date].[Date].&[2013-05-01T00:00:00]
      : 
        [Time].[Year -  Month -  Date].[Date].&[2013-12-01T00:00:00]
     ,
        [Time].[Year -  Month -  Date].[Date].&[2012-05-01T00:00:00]
      : 
        [Time].[Year -  Month -  Date].[Date].&[2012-12-01T00:00:00]
    } ON COLUMNS
  FROM [MyCube]
);
第二种方法-分别计算并合并结果

SELECT 
  {
    [Measures].[Amount1]
   ,[Measures].[Amount2]
  } ON COLUMNS
 ,NonEmpty
  (
      [Dim Customer].[Customer Group ID].Children*
      [Dim Customer].[Customer ID].Children*
      [Dim Customer].[Customer Name].Children*
      NULL*
      [Time].[Year -  Month -  Date].[Month].Children
  )
  +
 NonEmpty
  (
      [Dim Customer].[Customer Group ID].Children*
      [Dim Customer].[Customer ID].Children*
      [Dim Customer].[Customer Name].Children*
      [Dim Customer].[Customer Level].CHILDREN*
      [Time].[Year -  Month -  Date].[Date].&[2013-07-13T00:00:00]
  )                

  DIMENSION PROPERTIES 
    MEMBER_CAPTION
   ,MEMBER_UNIQUE_NAME
   ON ROWS
FROM 
(
  SELECT 
    {
        [Time].[Year -  Month -  Date].[Date].&[2013-05-01T00:00:00]
      : 
        [Time].[Year -  Month -  Date].[Date].&[2013-12-01T00:00:00]
     ,
        [Time].[Year -  Month -  Date].[Date].&[2012-05-01T00:00:00]
      : 
        [Time].[Year -  Month -  Date].[Date].&[2012-12-01T00:00:00]
    } ON COLUMNS
  FROM [MyCube]
);

…因此,金额1和金额2应仅为2013年7月13日的金额?金额应为2013年5月1日至2013年12月1日期间的总结。我只需要2013年7月13日关键日期的[客户级别]。谢谢。对于其他日期,它需要为空?您好,每个客户在7月13日都有自己的值,我必须在整个期间使用此值。2013年5月1日-2013年12月1日与子选择中的日期范围不一致?为什么子选项中有2012年的日期?很抱歉,我没有写任何答案,但项目目前处于搁置状态。@Katharina321没问题。我们将有兴趣看到您的解决方案一旦完成。感谢您的建议。