MDX - 独特的数量

时间:2011-12-15 15:49:26

标签: count distinct ssas mdx

我正在关注这篇文章:

http://msdn.microsoft.com/en-us/library/aa902637%28v=sql.80%29.aspx

我对非常​​计数的查询如下所示:

Count(CrossJoin({[Measures].[Submission Count]}, [Submission].[PK Submission].Members), ExcludeEmpty)

它总是返回1比它应该多(例如它返回27而不是26)。

在同一篇文章中有这个查询(假设要解决这个问题):

Count(CrossJoin( {[Sales]}, 
Descendants([Customers].CurrentMember, [Customer Names])),
 ExcludeEmpty)

但我无法让它发挥作用。我已经尝试了这两个,但第二个总是返回1或0而第一个不起作用(错误:我必须明确定义一个级别):

Count(CrossJoin( {[Measures].[Submission Count]}, 
    Descendants([Submission].CurrentMember, [Submission].[PK Submission])),
     ExcludeEmpty)


Count(CrossJoin( {[Measures].[Submission Count]}, 
    Descendants([Submission].[PK Submission].CurrentMember, [Submission].[PK Submission])),
     ExcludeEmpty)

知道我做错了什么吗?

谢谢!

1 个答案:

答案 0 :(得分:3)

第一个查询返回“比它应该多1”的原因是因为[Submission].[PK Submission].Members元组集还包括All成员。

如果您引用[PK Submission]级别而不是[PK Submission]层次结构的所有成员,则它不包括All成员。

因此,以下内容将返回您所期望的内容:

Count( CrossJoin( { [Measures].[Submission Count] }
                , { [Submission].[PK Submission].[PK Submission] })
     , ExcludeEmpty)