通过从现有度量中筛选出一个集来创建度量

时间:2015-04-23 04:53:10

标签: mdx 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可以根据Calendar Year维度进行切片。所以我想要像

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

2006年和2007年的价值相同。

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

1 个答案:

答案 0 :(得分:0)

此脚本无效mdx

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

在测量之前,您只有一个( 此外,您似乎还要添加tuple ON COLUMNS,这是不允许的。行和列只允许设置:

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

以上回复:

enter image description here

或许你想要的只是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]
);