2015-04-01 92 views
0

我想创建一个命名集,它将返回任何度量的选定成员的总和。当我部署时出现错误创建命名集

函数需要参数的元组集表达式。使用了一个字符串或 数字表达式。

请查看我的代码并提出解决方案。我有一个名为U电源的尺寸,这组命名应该总结选择这个尺寸的4名成员的任何措施

sum({[Uline].[CU - (46)], 
     [Uline].[FRU - (45)], 
     [Uline].[GL - (38)], 
     [Uline].[PU - (44)]},[Measures].CurrentMember) 

回答

0

更好,如果你希望它可用于任何措施来使用Aggregate,而不是Sum

也不需要在函数内包含Measures层次结构。

因此,尝试简单的东西是这样的:

Aggregate(
    { 
    [Uline].[CU - (46)], 
    [Uline].[FRU - (45)], 
    [Uline].[GL - (38)], 
    [Uline].[PU - (44)] 
    } 
) 

请注意,虽然,这将是在现有层次结构中的新成员,是这样的:

WITH MEMBER [Uline].[AggSet] AS 
    Aggregate(
    { 
    [Uline].[CU - (46)], 
    [Uline].[FRU - (45)], 
    [Uline].[GL - (38)], 
    [Uline].[PU - (44)] 
    } 
) 
SELECT 
    [Measures].[SOMEMEASUREinCUBE] ON 0, 
    [Uline].[AggSet] ON 1 
FROM [CubeName]; 

我不玩的实际的立方体脚本我自己,但我猜上述可以这样实现:

CREATE MEMBER CURRENTCUBE.Uline.AggSet AS 
    'Aggregate(
     { 
     [Uline].[CU - (46)], 
     [Uline].[FRU - (45)], 
     [Uline].[GL - (38)], 
     [Uline].[PU - (44)] 
     } 
    )' 

如果y ou'd而创建一个自定义设置为比计算的成员,那么请尝试以下操作:

CREATE SET CURRENTCUBE.[AggSet] AS 
     { 
     [Uline].[CU - (46)], 
     [Uline].[FRU - (45)], 
     [Uline].[GL - (38)], 
     [Uline].[PU - (44)] 
     } 
, 
Display_Folder = 'Sets'; 

大括号{}意味着MDX SET

在脚本中,这看起来像下面这样的背景下:

WITH SET [AggSet] AS 
    { 
    [Uline].[CU - (46)], 
    [Uline].[FRU - (45)], 
    [Uline].[GL - (38)], 
    [Uline].[PU - (44)] 
    } 
SELECT 
    [Measures].[SOMEMEASUREinCUBE] ON 0, 
    [AggSet] ON 1 
FROM [CubeName]; 
+0

我想避免创建一个计算成员,因为它在U电源的层次结构显示出来,然后打乱了总额为所有的成员,我我正在使用Aggregate得到重复。 – user1689992 2015-04-01 23:33:03

+0

我尝试了你建议创建一个命名集的脚本(使用成员[Uline]。[AggSet] AS ...),并且出现构建错误“with with的语法不正确”。不知道我们是否可以在命名集的mdx表达式中使用它。 – user1689992 2015-04-01 23:35:23

+0

我想我的原始表达式的问题是,它不是一个元组。我如何使它成为一个令人兴奋的东西? – user1689992 2015-04-01 23:37:37