2012-02-10 32 views

回答

1

您可以添加在聚合最后处理的calculated member。让我们假设你定义A和B措施:

WITH 
    MEMBER [Measures].[A/B] AS ([Measures].[A])/([Measures].[B]) 
SELECT 
... 

您可以在多维数据集定义添加计算的成员,因此将在所有MDX语句可用。可以肯定的是,请注意Sum(A)/ Sum(B)!= Sum(A/B),如果需要,您可以添加检查0/null。

0

据我所知,你有一个计算字段(列A /列B)在SQL DB或DSV(数据源视图)。因此,您可以为每列创建两个SUM度量值(A列为一个总和度量值,第二个为B列),并将其用于新计算的度量值中。

1

你想要的是SUM(列A)/总和(列B)而不是SUM(所有单独的列A /列B)。然后我假设你有两个措施:sum_column_asum_column_b

要创建新措施sum_column_a_b你应该创建一个计算的成员:

  • 在Visual Studio中计算选项卡上打开你的立方体
  • 点击
  • 点击脚本视图并粘贴此代码:

要粘贴的代码:

CREATE MEMBER CURRENTCUBE.[Measures].[sum_column_a_b] 
AS iif( [Measures].[sum_column_b] > 0, 
     [Measures].[sum_column_a]/[Measures].[sum_column_b], 
     0), 
FORMAT_STRING = "Percent", 
VISIBLE = 1 , ASSOCIATED_MEASURE_GROUP = 'yourDesiredGroup'; 

处理多维数据集时,此新度量将可用。