维度成员的条件分组
conditional grouping of dimension members
我正在努力解决查询中某些成员的条件分组问题。
在我的简化示例中,我有两个维度和一个度量。第一维包含一些类别,第二维包含一些单位。在除一个类别之外的所有类别中,所有类别都有一个单位(示例中的类别 A 和 B)。但是,一个类别有多个单位。如果我将两个维度都放在行上,我会得到类别 C 的多个结果(如以下示例所示)。我真正需要的是为每个类别获取一行,适当聚合金额,但也显示单位(在类别 C 的情况下,应将它们替换为单个 "none" 或连接在一起,如果这是不可能的(示例中的"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 如下:
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]
我正在努力解决查询中某些成员的条件分组问题。
在我的简化示例中,我有两个维度和一个度量。第一维包含一些类别,第二维包含一些单位。在除一个类别之外的所有类别中,所有类别都有一个单位(示例中的类别 A 和 B)。但是,一个类别有多个单位。如果我将两个维度都放在行上,我会得到类别 C 的多个结果(如以下示例所示)。我真正需要的是为每个类别获取一行,适当聚合金额,但也显示单位(在类别 C 的情况下,应将它们替换为单个 "none" 或连接在一起,如果这是不可能的(示例中的"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 如下:
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]