在我的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 - 再次 - 这可能是我不知道语法!