Ssas 维度成员的条件分组

Ssas 维度成员的条件分组,ssas,mdx,Ssas,Mdx,我正在努力对查询中的一些成员进行条件分组 在我的简化示例中,我有两个维度和一个度量。第一个维度包含一些类别,第二个维度包含一些单位。在除一个类别外的所有类别中,所有类别都有一个单元(示例中的类别a和B)。但是,一个类别有多个单位。如果我把两个维度都放在行上,我会得到类别C的多个结果(如下例所示)。我真正需要的是为每个类别获得一行,适当地聚合数量,但也要使用显示的单位(对于类别C,应将它们替换为单个“无”,或者在不可能的情况下连接在一起(示例中为“km,kg”) 下面的例子应该说明我试图实现的目标

我正在努力对查询中的一些成员进行条件分组

在我的简化示例中,我有两个维度和一个度量。第一个维度包含一些类别,第二个维度包含一些单位。在除一个类别外的所有类别中,所有类别都有一个单元(示例中的类别a和B)。但是,一个类别有多个单位。如果我把两个维度都放在行上,我会得到类别C的多个结果(如下例所示)。我真正需要的是为每个类别获得一行,适当地聚合数量,但也要使用显示的单位(对于类别C,应将它们替换为单个“无”,或者在不可能的情况下连接在一起(示例中为“km,kg”)

下面的例子应该说明我试图实现的目标

使用以下查询:

    SELECT 
          NON EMPTY { [Measures].[Amount] } ON COLUMNS, 
          NON EMPTY { ([Grouping A].[Category].[Category].ALLMEMBERS * 
                       [Grouping B].[Unit].[Unit].ALLMEMBERS ) } ON ROWS 
    FROM [ExampleCube]  
我得到的数据如下:

Category     Unit     Amount
A            km         10
B            km         5
C            km         5
C            kg         2
C            km         5  
但我真正需要实现的是对维度类别进行分组,并按如下方式适当地处理维度单位和度量数量:

Category     Unit     Amount
A            km         10
B            km         5
C            none       12
也许这真的很简单,但我一直试图解决这个问题,但没有结果

任何想法都将不胜感激


谢谢。

这并不简单。OLAP并不是为这类事情而设计的。 尽管如此,您可以通过以下方式解决此问题:

With 
[Measures].[Unit] as 
IIF(
    NonEmpty(
        [Grouping B].[Unit].[Unit].Members,
        [Measures].[Amount]
    ).Count > 1,
    "None",
    NonEmpty(
        [Grouping B].[Unit].[Unit].Members,
        [Measures].[Amount]
    ).Item(0).Name
)


Select
Non Empty { [Measures].[Unit],[Measures].[Amount] } on 0,
Non Empty { [Grouping A].[Category].[Category].Members } on 1
From [ExampleCube]  

(已升级)分组B是否需要
现有
才能掌握上下文?使用分组B没有意义。如何一次显示“无”?