使用计算成员时的总计

时间:2017-05-19 12:08:45

标签: ssas mdx calculated-columns

在我的SSAS多维数据集(多维)中,我有一个名为Cargo的度量组。在那里我有三个属性:

[Contract_Key] (integer)
[Include In Sum] (integer)
[Quantity] (integer)

我的Contract_Key指向我的维度契约。 Include In Sum为0或1.如果Include In Sum = 1,则数量是我想要求和的数字。

我的合约维度包含合同编号以及子合同编号。我的用户通常希望按主合同号码对合同进行分组,但仍能查看各个子合同的详细信息。不幸的是,当主合同(包含总数量)和分包合同都会在数量中加错(将会加倍)。

所以我添加了一个计算成员(现在称为Summed Quantity),表达式为:

IIF([Measures].[Include In Sum]=1,[Measures].[Quantity],0)

作为MDX的新手,我的假设是,如果Include In Sum等于1,那么它将对数量求和,否则它将具有值0.

我的合约都属于同一维度,但可以有主合同和分包合同。我的包含总和的方式是:

If there is only a main contract, then Include In Sum is true for the main contract.
If there are sub-contracts then set the main contract's Include In Sum to 0 and all the sub-contracts Include In Sum to 1.

我的目标是始终显示数量 - 来自主合约或来自子合约(具有更正确的值,如果存在的话)。我的Include In Calc在Excel中正确显示 - 因此在我的数据库中设置正确。

我的问题是,如果合同包含子合同,那么我确实在各行上看到了正确的值(主合同的数量是空白的,所有子合同都显示正确的数量)。但我在Excel中的子总计和总计是空白的。只有没有分包合同的主合同才能正确显示。

Contract No    Quantity    Include In Sum
100            34000       1      <==== A sub-total line - only a main contract
   100         34000       1
110                        4      <==== A sub-total line - main contract with sub-contracts
   110                     0
   110-1       2500        1 
   110-2       2500        1
   110-3       2500        1
   110-4       2500        1

当然,我不想展示&#34;包括总和&#34; - 它就在那里,只要我不能让子总计在Excel中工作。

我想要的是我的第二个子总线应该给我10000的值。

我的表达式不包含SUM函数(可能是问题)。但是当围绕上面的MDX表达式添加SUM()时,只会使每个值在Excel中都显示为#VALUE - 再次 - 这可能是我不知道语法!

0 个答案:

没有答案