使用 IIF / CurrentMember 条件计算的聚合成员

问题描述 投票:0回答:1

这里是 MDX 新手。 我正在尝试定义和聚合包含 IIF 条件的自定义度量。 假设对于这个数据模型:

类别 姓名 项目类型 价格
A类 项目1 正常 4.0
A类 项目2 珍贵 5.0

我这样定义度量:

WITH Member [Measures].[WeightedMeasure] AS IIF(
[ItemType].CurrentMember IS [ItemType].[Precious],
2 * [Measures].[Price],
[Measures].[Price]
)

这在叶级别上计算正确,所以如果我在维度中有 ItemType,一切都很好。 但是,如果我尝试按类别聚合,IIF 条件不再匹配(因为它位于“叶子”上) 成员)。我无法添加具有预先缩放价格的列,因为因子(示例中为 2)可能是动态的。我还需要将其保留为度量(而不是查询的一部分),因为我需要稍后将其插入 TopCount(例如显示最昂贵的类别)。

这些问题似乎试图实现类似的目标: MDX IIF 语句聚合 (未回答)

MDX IIF 语句根据度量和层次结构叶子计算新成员 (需要自定义列,因此无法进行动态权重)

我曾尝试操纵 IIF 以对“后代”设置条件 - 但不确定是否可能。 另请阅读有关“范围”/过滤查询的内容 - 但我无法使示例适应我的简单模式。

ssas mdx olap iif
1个回答
0
投票

我的方法假设您正在计算类别成员具有可迭代的 ItemType 子级的级别,如果 ItemType 不是当前上下文或多维数据集中切片的一部分,则可能无法直接解决更高级别的聚合问题。

WITH 
Member [Measures].[WeightedPrice] AS 
    SUM(
        [Category].CurrentMember.Children, 
        CASE WHEN [ItemType].CurrentMember IS [ItemType].[Precious]
             THEN 2 * [Measures].[Price]
             ELSE [Measures].[Price]
        END
    )
© www.soinside.com 2019 - 2024. All rights reserved.