MDX - 添加多个属性时,成员不工作

MDX - With Member not working when more than one attribute added

当我尝试添加多个 Quarter 属性时,我似乎遇到了问题。以下工作没问题。

with member [Measures].[myTest] as
([Measures].[sample],
 [Date].[Fiscal Date].[Fiscal Year].&[1415],
 [Date].[Quarter].&[Jul-Sep]
 ),
format_string='$#,###,###,##0'
SELECT NON EMPTY 
{...

现在,当我尝试再添加四分之一作为一组时,我得到:

VALUE #Error 该函数需要一个字符串或数字表达式作为参数。使用了元组集表达式。

FORMATTED_VALUE #Error 该函数需要一个字符串或数字表达式作为参数。使用了元组集表达式。

这就是我做[日期].[季度]集的方式。

with member [Measures].[myTest] as
([Measures].[sample],
 [Date].[Fiscal Date].[Fiscal Year].&[1415],
 {[Date].[Quarter].&[Jul-Sep], [Date].[Quartr].&[Oct-Dec]}
 ),
format_string='$#,###,###,##0'
SELECT NON EMPTY 
{...

我可以有多个 [Date].[Quarter] 属性吗?

问题是

这是一个元组:

(
 [Measures].[sample],
 [Date].[Fiscal Date].[Fiscal Year].&[1415],
 [Date].[Quarter].&[Jul-Sep]
)

虽然这不是一个元组:

(
 [Measures].[sample],
 [Date].[Fiscal Date].[Fiscal Year].&[1415],
 {[Date].[Quarter].&[Jul-Sep], [Date].[Quartr].&[Oct-Dec]}
)

将元组视为多维平面上的坐标。每个平面的值必须是奇异的。

因此,虽然 (1,2,3) 是一个有效的元组,但 (1,{1,2}, 3) 是一个无效的元组。 SSAS 只是对你宽容,没有在此处抛出一些语法错误。

如果您想添加超过四分之一,您可以使用 Aggregate 函数,如下所示:

Aggregate
         (
            {[Date].[Quarter].&[Jul-Sep], [Date].[Quartr].&[Oct-Dec]} * [Date].[Fiscal Date].[Fiscal Year].&[1415]
            ,
            [Measures].[sample]
         )

This 是理解集合和元组概念的良好起点。

Here你可以了解一下Aggregate函数。

看来你打错了约翰:[Date].[Quartr].&[Oct-Dec]

在创建新度量之前尝试汇总两个季度:

WITH 
  MEMBER [Date].[Quarter].&[Jul-Dec] AS 
    Aggregate(
       {[Date].[Quarter].&[Jul-Sep]
       ,[Date].[Quarter].&[Oct-Dec]}
    ) 
  MEMBER [Measures].[myTest] AS 
    (
      [Measures].[sample]
     ,[Date].[Fiscal Date].[Fiscal Year].&[1415]
     ,[Date].[Quarter].&[Jul-Dec]
    ) 
   ,format_string = '$#,###,###,##0' 
SELECT 
  NON EMPTY