在SSAS表格模式多维数据集中返回重复行的MDX查询

在SSAS表格模式多维数据集中返回重复行的MDX查询,ssas,mdx,ssas-tabular,mdx-query,Ssas,Mdx,Ssas Tabular,Mdx Query,我对SSAS多维数据集和术语(成员、层次结构、e.t.c)以及MDX查询一无所知,但我已经开始学习这些东西,如果我的问题非常清楚,我深表歉意 我有上面正在执行的MDX查询。我从SSMS中的MDX查询设计器工具生成查询,只需手动进行简单修改 在查询中,如果我注释掉行[Parent\u Details].[Unit\u Name].[Unit\u Name]-.ALLMEMBERS,我会得到正确的行数 主要问题。 如果我取消对其进行注释,以便返回单位名称列,则我的行重复。原来的100行现在是正确的,

我对SSAS多维数据集和术语(成员、层次结构、e.t.c)以及MDX查询一无所知,但我已经开始学习这些东西,如果我的问题非常清楚,我深表歉意

我有上面正在执行的MDX查询。我从SSMS中的MDX查询设计器工具生成查询,只需手动进行简单修改

在查询中,如果我注释掉行
[Parent\u Details].[Unit\u Name].[Unit\u Name]-.ALLMEMBERS
,我会得到正确的行数

主要问题。

如果我取消对其进行注释,以便返回单位名称列,则我的行重复。原来的100行现在是正确的,因为有数千行的值都是重复的。任何人都知道我应该注意什么导致了这一切。看起来应用了错误的联接

其他我想了解的事情。

1。查询设计器以以下格式生成查询:

[建议].[Parent\u id].[Parent\u id]。所有成员*
。如果我注释掉
.ALLMEMBERS*
,使得查询只是
[Suggestions].[Parent\u id].[Parent\u id]
而没有注释掉
.ALLMEMBERS*
,结果是相同的。那么
.ALLMEMBERS*

2。我还注意到我要选择的列重复了两次,如下所示


建议].[Parent\u id].[Parent\u id]
,为什么会这样?为什么不能将其生成为
建议].[Parent\u id]

如果从不同维度进行选择,结果基本上是相乘的。仔细想想,这是正确的行为。在您的情况下,您有[建议][家长详细信息]。这些是不同的维度。在查询中,您希望结果同时具有这两个属性,因此:

对于[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]维度具有不同的级别不会使度量值成倍增加)

当你考虑它时,这是一个正确的行为,因为如果你添加这两个维度,你可能想知道类似“该建议和这些父细节的度量值是什么?”这样的信息,并且结果集中的确切行是正确的。这完全取决于你想要得到什么结果(你要求什么)

名称的乘法取决于您的多维数据集设计。第一行是级别,第二行是成员。例如,如果您创建一个层次结构,它将不会像这样

[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.