【发布时间】:2014-04-10 16:03:49
【问题描述】:
我有一个事实表,其中有 2 列对应于维度 Dim1、Dim2。 在同一张表中,我还有 4 个其他列 Value_Type(int)、INT_VALUE(int)、FLOAT_VALUE(float)、TEXT_VALUE(string)。 有许多由 Value_Type 标识的度量值,根据它们的性质,可以写入 3 列之一(INT_VALUE(int)、FLOAT_VALUE(float)、TEXT_VALUE(string)) 为清楚起见,假设 Measure_Type=1 的 Measure1 是年龄,2 是帐户余额,3 是名称。 可能有其他度量类型使用这 3 个相同的数据列。 所以样本事实表看起来像这样
Dim1 Dim2 Measure_Type INT_VALUE FLOAT_VALUE TEXT_VALUE
10 10 1 25
10 10 2 2000,34
10 10 3 John
10 20 1 28
10 20 2 3490,23
10 20 3 Frank
我的任务是为每个 Dim1、Dim2 组合编写一个 MDX 查询,该查询返回同一行中的所有 3 个度量。 这个想法是为每个从正确字段返回值的 Measure 构造一个计算成员。 例如,对于 Measure1,我们采用 INT_VALUE,measure_type=1。 问题是我不知道如何为这些计算成员构造 MDX 查询。 你能帮帮我吗?
所以我的最终目标是编写一个 MDX 查询,为每一组 Dim1、Dim2 返回一行中的所有度量
SELECT [Measure1], [Measure2], [Measure3] ON COLUMNS,
NON EMPTY [Dim1].[Dim1].[Dim1].Members*[Dim2].[Dim2].[Dim2].Members ON ROWS
FROM [Cube]
Dim1 Dim2 Measure1 Measure2 Measure3
10 10 25 2000,34 John
10 20 28 3490,23 Frank
【问题讨论】:
-
字符串不能被聚合。如果您不在选择的最底层,您希望为 Measure3 显示什么?
-
我需要一个 measure_type=3 的文本值。显然有一个连接文本值的函数。
-
在 Analysis Services 中无法将字符串连接为聚合。
-
不,我的意思是我可以在计算成员中使用的函数