【问题标题】:Filter MDX hierarchy, however still show total of leave - Ragged Hierarchy?过滤 MDX 层次结构,但仍显示休假总数 - 层次结构参差不齐?
【发布时间】:2013-07-30 08:37:07
【问题描述】:

以下查询

选择 { [Measures].[Comp Money In] } 在列上, { ( [暗淡用户].[UserLevel1].[UserLevel1].AllMembers * [暗淡用户].[UserLevel2].[UserLevel2].AllMembers * [暗淡用户].[UserLevel3].[UserLevel3].AllMembers * [暗淡用户].[UserLevel4].[UserLevel4].AllMembers * [暗淡用户].[UserLevel5].[UserLevel5].AllMembers ) } 在行 FROM [活动] WHERE ([Dim User].[UserIdHierarchy].[UserLevel1Id].&[#513], [Dim User].[UserTypeHierarchy].[UserTypeLevel1].&[Commercial Partner].&[Agent] ) CELL 属性值

产生以下结果:

我的问题是,由于我正在过滤 [Dim User].[UserTypeHierarchy],因此显示的度量值仅属于具有 [Commercial Partner].&[Agent] 类型的度量值。即使我正在显示用户树,我也希望显示的数字显示所有度量,就好像它像后代([Hierarchy],0,self_and_after)。

我如何实现这一目标?我已经尝试使用计算成员,但显示的数字并未聚合 [Dim User].[UserTypeHierarchy] 层次结构下所有用户类型的后代。

为了更好地解释我自己,下图没有用户类型过滤器:

所以我想要的结果是第一张图片,我只显示用户类型商业合作伙伴的用户,但第二张图片的数字,例如

  • 513 将显示聚合后代的所有数字

  • 100310 将显示在第三层聚合他下的所有用户的所有数字

那么第四个。

【问题讨论】:

    标签: ssas mdx olap business-intelligence dimensional-modeling


    【解决方案1】:

    [活动] Cube 设置不正确。查询一个级别时,它应该显示自身及其子级的值(例如“Country Shop 1”应该显示 19)。这应该是多维数据集中的聚合规则的一部分。现在显示在 Cube 的父项中的值(例如 Country Shop 1 €6)应该显示在一个额外的休息组中,该组自动创建为每个父项的附加子项。

    所以,这个多维数据集的简单 MDX 将是:

    SELECT {
    [Measures].[In]
    } ON COLUMNS,
    {
    DESCENDANTS([Dim User].[UserTypeHierarchy].[UserTypeLevel1],0,SELF_AND_AFTER)
    }
    from [Activities]
    

    将显示具有适当聚合值的所有地区、国家和商店。

    问候 菲尔

    【讨论】:

    • 嗨菲尔。感谢您的回答。是的,多维数据集已按照您的说法进行配置。我的问题是我需要在维度上应用过滤器,但仍然显示叶子的所有数字。发生的情况是,当我过滤维度时,度量也会被过滤。
    • Phil,在您的回答中,行部分,此查询将显示 UserTypeHierarchy。我不想要这个。我想要列中的 [Measures].[In],以及行上商店的层次结构,但是从用户类型层次结构中过滤用户类型。我只想在行的维度上过滤用户类型层次结构,但在度量中,我仍然希望它们聚合。我无法让它工作。
    【解决方案2】:

    这是解决方案:

    和 成员[措施]。[测试] AS 0 选择 { [测试] 开 0, 非空{ 筛选 ( {[dim user].[userhierarchy].[userlevel1].allmembers } ,[dim user].[userhierarchy].currentmember.children.count > 1 ), 筛选 ( {[dim user].[userhierarchy].[userlevel2].allmembers } ,[dim user].[userhierarchy].currentmember.children.count > 1 ), 筛选 ( {[dim user].[userhierarchy].[userlevel3].allmembers } ,[dim user].[userhierarchy].currentmember.children.count > 1 ), 筛选 ( {[dim user].[userhierarchy].[userlevel4].allmembers } ,[dim user].[userhierarchy].currentmember.children.count > 1 ), 筛选 ( {[dim user].[userhierarchy].[userlevel5].allmembers } ,[dim user].[userhierarchy].currentmember.children.count > 1 ), 筛选 ( {[dim user].[userhierarchy].[userlevel6].allmembers } ,[dim user].[userhierarchy].currentmember.children.count > 1 ), 筛选 ( {[dim user].[userhierarchy].[userlevel7].allmembers } ,[dim user].[userhierarchy].currentmember.children.count > 1 ), 筛选 ( {[dim user].[userhierarchy].[userlevel8].allmembers } ,[dim user].[userhierarchy].currentmember.children.count > 1 ), 筛选 ( {[dim user].[userhierarchy].[userlevel9].allmembers } ,[dim user].[userhierarchy].currentmember.children.count > 1 ), 筛选 ( {[dim user].[userhierarchy].[userlevel10].allmembers } ,[dim user].[userhierarchy].currentmember.children.count > 1 ) } 开 1 FROM [活动]

    我不是按父用户类型过滤,而是提出那些孩子数大于 1 的用户。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-03-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多