获取所选时间段内关键日期的成员值

时间:2015-11-16 12:14:09

标签: mdx

我需要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]
);

2 个答案:

答案 0 :(得分:0)

您可以创建自定义集。如果您只想要在13.July 2013上有活动的客户,那么以下内容就是一个开始:

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]
);

答案 1 :(得分:0)

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

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]
);