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
当我尝试添加多个 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