【问题标题】:How can I merge two members into one in a query?如何在查询中将两个成员合并为一个?
【发布时间】:2013-07-16 16:33:29
【问题描述】:

在行上,我基本上想选择层次结构的所有成员,但想将其中两个组合为一个。例如,成员将包括ABC,因此选择[Group].[Group].members 将给我AllABC,但我想得到All, A,andB&C,其中BC 已合并为一个成员。

这可以在查询中实现吗?

我正在使用的数据库存储有关订单运输速度、小包裹、小于卡车装载量和白手套的信息。我想合并小包裹和小于卡车装载量,以便获得两种运输速度的汇总数据。

我尝试创建一个计算成员:[Measures].[Not White Glove] as AGGREGATE([Order Product].[Ships Via Group].&[Small Parcel], [Order Product].[Ships Via Group].&[Less than Truck Load]),但我不确定如何使用它,因为我目前拥有[Order Product].[Ships Via Group].members ON ROWS

当我输入([Measures].[Not White Glove], [Order Product].[Ships Via Group].&[White Glove], [Order Product].[Ships Via Group].&[All]) ON ROWS 时,我收到错误Query (14, 11) The Ships Via Group hierarchy is used more than once in the Crossjoin function.

有没有更好的方法来解决这个问题/那个错误是什么意思?

【问题讨论】:

  • 你想达到什么目的? (为什么要合并两行以及它们应该在哪个基础/在什么条件下合并?)您尝试过什么吗?
  • 向问题添加了更多信息,解决了您提出的问题。很抱歉没有早点提供更多信息

标签: mdx


【解决方案1】:

您看到的错误是因为您使用括号的语法:(a, b, c) 定义了一个元组,其中 a、b 和 c 分别是来自不同维度的成员。如果您尝试将这些成员联合在一起,则应使用简写:{a, b, c}

现在,组合成员是可能的,尽管可能不像您想要的那样干净和容易。这是一种方法的示例,即创建一个新成员,然后从层次结构中排除(通过Except)原始成员。

WITH 
    SET [Combined] AS {
        [Customer].[Customer Geography].[Country].&[France], 
        [Customer].[Customer Geography].[Country].&[Germany]
    }
    MEMBER [Customer].[Customer Geography].[France & Germany] AS Aggregate([Combined])
SELECT
    [Measures].[Internet Sales Amount] ON 0,
    Union(
        Except([Customer].[Customer Geography].[Country], [Combined]),
        [Customer].[Customer Geography].[France & Germany]
    ) ON 1
FROM [Adventure Works]

结果:

                  Internet Sales Amount
Australia                 $9,061,000.58
Canada                    $1,977,844.86
United Kingdom            $3,391,712.21
United States             $9,389,789.51
France & Germany          $5,538,330.05

希望能帮助您走上正轨。

【讨论】:

  • 这很有帮助!谢谢!
  • 我已经为计算成员尝试了此解决方案,但结果中出现 #Error 并显示消息“聚合函数不能用于度量维度中的计算成员”。有什么想法吗?
  • 我目前正在试验这种方法,虽然它看起来很有希望,但看起来它需要一个 [Measure] 才能工作(在我使用的特定立方体中有点棘手- 不是传递 [Measures] 成员,而是传递 [Calculation] 成员,结果集将包含基于对用户隐藏的几个 [Measures] 成员之一的数字)。有什么建议可以修改,以便分组成员在聚合时不需要在其下有数字?
猜你喜欢
  • 2021-09-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-28
相关资源
最近更新 更多