gpt4 book ai didi

ssas - 维度层次结构未显示所有数据

转载 作者:行者123 更新时间:2023-12-01 06:34:12 24 4
gpt4 key购买 nike

我有一个用户维度,它代表了许多商店的层次结构。例如,商店分为Country -> Region -> Town/Village -> Actual Shop。因此,当您从层次结构的角度来看时,它是 Level1、Level2、Level3、Level4 等。

现在奇怪的是,如果我在 WHERE 子句中按层次结构执行 MDX 查询和过滤,则不会显示特定用户的数据。但是,如果我执行相同的 MDX,而不是按层次结构过滤,而是按属性过滤,则会显示记录。

值得一提的是,用户层次结构 [UserIdHierarchy] 包含以下成员的层次结构

  • [UserLevel1Id]
  • [UserLevel2Id]
  • [UserLevel3Id]
  • [UserLevel4Id]
  • [UserLevel5Id]

  • 这是两种情况,它们应该返回完全相同的结果......

    使用用户层次结构过滤 Where 子句:

    在哪里
    (
    DESCENDANTS([Dim User].[UserIdHierarchy].&[#12345],0, self)
    )

    没有用户层次结构的 where 子句过滤:

    在哪里
    (
    DESCENDANTS([Dim User].[UserLevel3Id].&[#12345],0, self)
    )

    为什么两个过滤器不为该特定用户提供相同的数据?

    最佳答案

    原因是用户层次结构使用的是历史方法。因此,当用户拥有多个层次结构(如下所示)时,由于某种奇怪的原因,MDX 会困惑并与维度层次结构中的第一个项目站在一起。下面,我展示了用户注册到系统后的 3 种不同设置。解决我的问题,而不仅仅是做

    [Dim User].[UserIdHierarchy].&[#12345]

    我在 where 子句中过滤所有用户成员,即
    {[Dim User].[UserIdHierarchy].[UserLevel1Id].&[#12345],
    [Dim User].[UserIdHierarchy].[UserLevel2Id].&[#12345],
    [Dim User].[UserIdHierarchy].[UserLevel3Id].&[#12345]}

    然后对 FACT 数据进行实际过滤。通过这种方式,我包含了用户层次结构中与我的用户匹配的所有成员的所有数据 - 在这种情况下是 #12345。

    关于ssas - 维度层次结构未显示所有数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16607780/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com