我想改变总结方式,以避免舍入错误。
我的计算只是A栏/ B栏
在层次结构的每个级别,我想要SUM(A列)/ Sum(B列)而不是SUM(所有单独的A列/ B列)
我如何在计算中或改变总结的工作方式?
答案 0 :(得分: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检查。
答案 1 :(得分:1)
您想要的是SUM(A列)/ Sum(B列)而不是SUM(所有单独的A列/ B列)。然后我假设你有两个措施:sum_column_a
和sum_column_b
。
要创建新度量sum_column_a_b
,您应该创建一个计算成员:
要粘贴的代码:
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';
处理多维数据集时,此新度量将可用。
答案 2 :(得分:0)
据我所知,您在sql db或DSV(数据源视图)中有一个计算字段(A列/ B列)。因此,您可以为每列创建两个SUM度量(A列的一个求和度量,B列的第二个度量值),并在新计算的度量中使用它们
iif([Measure].[ColumnB]=0 OR [Measure].[ColumnB] is NULL, 0, [Measure].[ColumnA]/[Measure].[ColumnB])
。