2016-06-30 31 views
8

我有一个SSAS-2014多维数据集。我想设置一个特定的度量为NULL,如果某个特定的维度正在轴或Excel中的数据透视表的过滤器窗格中使用。现在,最直观的解决方案就是将此度量范围限制为不适用于该维度的成员。我说,我不想与会计期间成员的工作措施,然后我用下面的MDX多维数据集:如果在Excel中使用特定维度,则将度量值设置为NULL

CREATE MEMBER CURRENTCUBE.[Measures].[Test Measure] AS 1; 

SCOPE([Measures].[Test Measure]); 
SCOPE(DESCENDANTS([DIM Accounting Period].[Accounting Period Hierarchy].[All],,AFTER)); 
THIS = NULL; 
END SCOPE; 
END SCOPE; 

这似乎是工作,如果我在数据透视表的过滤器中选择一年。 enter image description here

这似乎不错,因为Excel中发送以下MDX回SSAS引擎,如果我选择在过滤器窗格中两个成员,如在此图像中

SELECT NON EMPTY Hierarchize (
{ 
    DrilldownLevel (
    { [DIM Production Period].[Production Month].[All Dates] } 
    , 
    , 
    , INCLUDE_CALC_MEMBERS 
) 
} 
) ON COLUMNS 
FROM [CUBE - Opex Analysis] 
WHERE ([DIM Accounting Period].[Accounting Period Hierarchy].[Accounting Year].[2015], 
     [Measures].[Test Measure]) CELL PROPERTIES VALUE 
, FORMAT_STRING 
, LANGUAGE 
, BACK_COLOR 
, FORE_COLOR 
, FONT_FLAGS 

问题发生 enter image description here

其原因似乎与excel发回引擎的MDX有关。它将这些项目封装在子多维数据集中,使引擎认为没有选择会计年度。这是Excel使用MDX:

SELECT NON EMPTY Hierarchize (
{ 
    DrilldownLevel (
    { [DIM Production Period].[Production Month].[All Dates] } 
    , 
    , 
    , INCLUDE_CALC_MEMBERS 
) 
} 
) ON COLUMNS 
FROM (
SELECT (
{ [DIM Accounting Period].[Accounting Period Hierarchy].[Accounting Year].[2015], 
    [DIM Accounting Period].[Accounting Period Hierarchy].[Accounting Year].[2016] }) ON COLUMNS 
FROM [CUBE - Opex Analysis] 
) 
WHERE ([Measures].[Test Measure]) CELL PROPERTIES VALUE 
, FORMAT_STRING 
, LANGUAGE 
, BACK_COLOR 
, FORE_COLOR 
, FONT_FLAGS 

请注意,我也尝试过使用现有试图捕捉正在使用的会计年度,但我有同样的问题。有谁知道一种方法来解决这个问题?我以前也有类似的问题,但实现我这里使用的解决方案是矫枉过正性能Similar Question 我用SSAS 2014和Excel的2013

回答

2

嗯,我可以设想为子多维数据集的情况唯一的解决办法是建立在探测动态集如提到的问题文章中所述。然后为您的范围添加另一个子范围([DIM会计期间]。[会计期间层次结构]。[全部])并在此范围内计数DESCENDANTS([DIM Accounting Period].[Accounting Period Hierarchy].[All],,AFTER)。将其与动态集的计数进行比较。如果两个匹配 - 你不在sublect中,否则你是。

+0

感谢您的建议,但动态设置解决方案真的会杀死我在问题中提到的性能。 – BICube

+0

@阿拉,伤心但真实。还没有尝试过SSAS 2016,2014年没有其他方式,但动态设置来检测subcubes。 – Ferdipux

相关问题