【问题标题】:MDX query returning duplicate rows in SSAS tabular mode cubeMDX 查询返回 SSAS 表格模式多维数据集中的重复行
【发布时间】:2018-05-24 12:41:04
【问题描述】:

我对 SSAS 多维数据集和术语(成员、层次结构等)和 MDX 查询完全陌生,但我已经开始了学习这些东西的旅程,如果我的问题很清楚,敬请见谅。

     SELECT NON EMPTY { } ON COLUMNS, { 
     [Suggestions].[Parent_id].[Parent_id] *--.ALLMEMBERS * 
     [Suggestions].[id].[id] * --.ALLMEMBERS * 
     [Suggestions].[Sugg - #].[Sugg - #] *-- .ALLMEMBERS * 
     [Suggestions].[Sugg - Assigned].[Sugg - Assigned] *  --.ALLMEMBERS * 
     [Suggestions].[Sugg - Assigned to].[Sugg - Assigned to]* --.ALLMEMBERS * 
     [Suggestions].[Sugg - Status].[Sugg - Status] *--.ALLMEMBERS   
    
     --[Parent_Details].[Unit_Name].[Unit_Name]  --.ALLMEMBERS
     } 
     DIMENSION PROPERTIES MEMBER_CAPTION, 
     MEMBER_UNIQUE_NAME ON ROWS 
     FROM ( SELECT ( { [Suggestions].[Sugg - Assigned to].&[UNIT] } ) ON COLUMNS 
     FROM ( SELECT ( STRTOSET('SG123', CONSTRAINED) ) ON COLUMNS 
     FROM ( SELECT ( { [Suggestions].[Sugg - Status].&[Pending Inputt] } ) ON COLUMNS 
     FROM [BOI_Tracker-Stats]))) 
     CELL PROPERTIES VALUE

我执行了上述 MDX 查询。我从 SSMS 中的 MDX 查询设计器工具生成了查询,并且只进行了简单的手动修改。

在查询中,如果我注释掉[Parent_Details].[Unit_Name].[Unit_Name] --.ALLMEMBERS 行,我会得到正确的行数。

主要问题。

如果我取消注释以返回 Unit_Name 列,我的行将重复。原来的 100 行现在是正确的,因为数以千计的行都有重复值。任何人都知道我应该注意什么导致了这种情况。看起来应用了错误的联接。

我想了解的其他内容。

1.查询设计器以格式生成查询

[Suggestions].[Parent_id].[Parent_id].ALLMEMBERS * 。如果我注释掉.ALLMEMBERS * 使得查询只是[Suggestions].[Parent_id].[Parent_id] 而没有.ALLMEMBERS * 结果是一样的。那么.ALLMEMBERS *有什么用

2.我还注意到我要选择的列重复了两次

Suggestions].[Parent_id].[Parent_id],为什么会这样?,为什么不能直接生成为Suggestions].[Parent_id]

【问题讨论】:

    标签: ssas mdx ssas-tabular mdx-query


    【解决方案1】:

    如果您从不同的维度进行选择,您基本上可以将结果相乘。如果您考虑一下,那是正确的行为。在您的情况下,您有 [Suggestions] 和 [Parent_Details] 。这些是不同的维度。在您的查询中,您希望结果同时具有这两种结果:

    对于 [Suggestion] 的每个成员,获取 [Parent Details] 的所有成员并将它们添加到结果中。于是结果集就变成了:

    [Suggestion-1][Parent_Details-1][Measures...]
    [Suggestion-1][Parent_Details-2][Measures...]
    [Suggestion-2][Parent_Details-1][Measures...]
    [Suggestion-2][Parent_Details-2][Measures...]
    [Suggestion-3][Parent_Details-1][Measures...]
    etc.
    

    (与 [Suggestions] 维度不同的级别不会使度量相乘)

    考虑到这一点,这是一个正确的行为,因为如果您添加这两个维度,您可能想知道诸如“该建议和这些父级详细信息的措施是什么?”并且该确切行在结果集中是正确的。这完全取决于你想要得到什么结果(你要求什么)。

    名称的乘法取决于您的立方体设计。第一行是一个级别,第二行是一个成员。例如,如果您创建一个层次结构,它看起来不会像那样。

    【讨论】:

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