【问题标题】:Filter SET by currentMember.MemberCaption按 currentMember.MemberCaption 过滤 SET
【发布时间】:2016-11-18 12:18:36
【问题描述】:

我有一组某个维度的成员,比如说 [Dim].[Dim].[Dim]。然后我写了一个查询,返回这个维度中所有元素的 2016 年某种度量,假设有 5 个这样的元素。

我要做的下一步是在此维度中找到第一个同名的成员(与行中的 CurrentMember 相同),但为 2015 年。因此,我想计算一些关于 2015 年成员的衡量标准,而不是 2016 年的。

所以问题出在范围内 - 我无法生成这样的集合,因为 CurrentMember 的函数范围将等于 GENERATE 的范围,所以我无法提取现在在行上的实际当前成员,并且我想为其查找“相同”以前的名字”成员。

我是否能够使用普通的 MDX 来做到这一点,或者我应该采用一些解决方法,比如在 t-sql 视图中找到这样的“相同”元素并手动在多维数据集中建立子父关系?第二种方法我认为是非常不可取和丑陋的。

谢谢。

【问题讨论】:

    标签: ssas mdx olap cube olap-cube


    【解决方案1】:

    您是否有理由不能只在时间(我猜是年份)维度上使用 .PrevMember?

    WITH MEMBER [Measures].[SomePrevYearCalculation]
    AS ([Time].[Year].CurrentMember.PrevMember,[Measures].[AMeasure])
    SELECT
    {[Measures].[AMeasure],[Measures].[Some2015Calculation]} ON 0,
    [[Some complicated dimension stuff]] ON 1
    FROM Cube
    WHERE [Time].[Year].[2016]
    

    或者您正在处理在叶级具有多个重复名称的维度,因此您无法通过实际维度成员匹配 2015 年到 2016 年的数字?

    【讨论】:

    • 是的,实体之间没有关系。根据年份,表中的每个实体都是唯一的 id。在您的查询中,我无法定义上一年维度的哪个成员与当前行中的特定成员相关。我必须按名称找到它。
    • 这很清楚,谢谢。如何创建要在您尝试匹配的名称上键入的维度?如果 id 是特定于年份的,那么它就不能用作随着时间推移有用的维度的维度键。
    猜你喜欢
    • 2012-05-26
    • 1970-01-01
    • 2013-12-02
    • 1970-01-01
    • 2020-05-17
    • 1970-01-01
    • 2011-12-31
    • 2014-03-28
    • 1970-01-01
    相关资源
    最近更新 更多