通过从现有度量中过滤掉一组来创建度量

Creating a measure by filtering out a set from an existing measure

我正在尝试实现如下内容:

WITH MEMBER Measures.Test2 AS 
Sum
(
  {
    [Date].[Calendar].[Calendar Year].&[2006]
   ,[Date].[Calendar].[Calendar Year].&[2007]
  }
 ,[Measures].[Internet Sales Amount]
) 
SELECT Measures.Test2 ON COLUMNS 
FROM [Adventure Works];

但我希望新度量 Test2 可以根据日历年维度进行切片。所以我想要类似

的东西
SELECT {Measures.Test2} ON 0,
{[Date].[Calendar].[Calendar Year].[Calendar Year].MEMBERS} ON 1 
FROM [Adventure Works];

这为 2006 年和 2007 年提供了相同的值。

本质上我想通过采用现有度量的子集然后将其用于进一步计算来创建成员

此脚本无效mdx:

SELECT (Measures.Test2,[Date].[Calendar].[Calendar Year].[Calendar Year] ON COLUMNS 
FROM [Adventure Works];

你有一个 ( 之前的措施。
此外,您看起来要在列中添加 tuple,这是不允许的。行和列上只允许设置:

SELECT 
{Measures.Test2} ON 0,
{[Date].[Calendar].[Calendar Year].[Calendar Year].MEMBERS} ON 1
FROM [Adventure Works];

尝试以下操作:

WITH 
  MEMBER Measures.Test2 AS 
    Sum
    (
      Intersect
      (
        {[Date].[Calendar].CurrentMember}
       ,{
          [Date].[Calendar].[Calendar Year].&[2006]
         ,[Date].[Calendar].[Calendar Year].&[2007]
        }
      )
     ,[Measures].[Internet Sales Amount]
    ) 
SELECT 
  [Measures].test2 ON COLUMNS
 ,{[Date].[Calendar].[Calendar Year].MEMBERS} ON ROWS
FROM [Adventure Works];

上面returns这个:

或者也许您想要的只是 subselect:

SELECT 
  [Measures].[Internet Sales Amount] ON COLUMNS
 ,{[Date].[Calendar].[Calendar Year].MEMBERS} ON ROWS
FROM 
(
  SELECT 
    {
      [Date].[Calendar].[Calendar Year].&[2006]
     ,[Date].[Calendar].[Calendar Year].&[2007]
    } ON 0
  FROM [Adventure Works]
);