2014-10-31 60 views
0

我执行这个查询,并给了我这个错误:MDX:如何获得维数

Infinite Recursion Detected: The loop of dependencies is: Direct Reporting->Direct Reporting.

任何人可以帮助我吗?

WITH 
    MEMBER [Measures].[Direct Reporting] AS COUNT([Employee].[Employees].Members, EXCLUDEEMPTY) 
SELECT 
    {[Measures].[Direct Reporting]} ON COLUMNS, 
    {[Geography].[Country].AllMembers} ON ROWS 
FROM [Adventure Works] 

回答

0

您已经选择了特殊类型的层次结构:父/子层次结构。

这里是针对advWks立方体的计数的示例:

WITH 
    MEMBER [Measures].[aCount] AS 
    Sum 
    (
     (
     [Customer].[Customer].[Customer] 
     ,[Customer].[Customer Geography].CurrentMember 
    ) 
    ,IIF 
     (
     [Measures].[Internet Order Quantity] > 50 
     ,1 
     ,0 
    ) 
    ) 
SELECT 
    { 
    [Measures].[Direct Reporting] 
    ,[Measures].[Internet Order Count] 
    } ON COLUMNS 
,{[Customer].[Customer Geography].[Country].MEMBERS} ON ROWS 
FROM [Adventure Works]; 
0

指定Count与EXCLUDEEMPTY意味着引擎需要评估由尺寸的每个成员和当前[处理方法]中引用的多维数据集的细胞。对于SSAS行为不是100%肯定的,但似乎目前的[Measures]是calc。度量被定义为自身:因此是无限循环。

要解决它,你可以明确定义[措施]:

WITH MEMBER [Measures].[Direct Reporting] AS COUNT({ [Measures].[use-here-your-measure] } * [Employee].[Employees].Members, EXCLUDEEMPTY)

也许使用NonEmpty功能:

AS Count(NonEmpty([Employee].[Employees].Members, [Measures].[use-here-your-measure]))

希望有所帮助。