在OLAP多维数据集错误Grand Total过滤属性时

问题描述 投票:11回答:2

用户尝试检查每个销售人员的销售额。样本数据:

Salesperson   Sales Amount    
001                   1000    
002                    500    
003                    750
Grand Total:          2250

它看起来很好,但我们在多维数据集中有以下层次结构Company > Class > Group > Subgroup,如果用户尝试在过滤器中使用此层次结构 - Grand Total失败(如果在此层次结构中未选中任何属性)。样品:

Salesperson   Sales Amount    
001                   1000    
002                    500    
003                    750    
Grand Total:           350

在我们尝试过滤Date属性之前,我注意到了同样的问题,如果不是每个月的每一天都被选中,那么它也显示错误的总计。

你知道它为什么会发生以及如何解决它吗?

销售额是物理量度(不是计算量度),它是从SQL视图中选择的(每个事实都是如此)。

Wrong Grand Total

我问了同样的问题here,但没人能回答。

我试图删除所有MDX计算(范围),但仍然是Grand Total不正确。

Clean MDX Calculations

Wrong Grand Total

编辑

我注意到像这样过滤时会出现问题:

Hierarchy filter

从层次结构的第一级中选择1个元素,从第2级中选择1个元素,从第3级层次结构中选择1个元素,如上图所示。

如果未过滤第3级,则显示良好的总计。

编辑2

我试图跟踪SSAS,它返回与Excel中完全相同的输出。在行上使用Salesperson维度时,它生成了以下MDX:

SELECT NON EMPTY { [Measures].[Sales Amount] } ON COLUMNS, 
NON EMPTY { ([Salesperson].[Salesperson].[Salesperson].ALLMEMBERS ) } 
DIMENSION PROPERTIES MEMBER_CAPTION, 
MEMBER_UNIQUE_NAME ON ROWS FROM ( 
SELECT ( {  [Item].[Class - Group - Subgroup].[Class].&[XXX]&[1.], 
            [Item].[Class - Group - Subgroup].[Group].&[XXX]&[2.]&[2.2.], 
            [Item].[Class - Group - Subgroup].[Subgroup].&[XXX]&[2.]&[2.3.]&[2.3.1.] } 
) ON COLUMNS FROM ( SELECT ( { [Company].[Company].&[XXX] } ) ON COLUMNS 
FROM [Sales])) 
WHERE ( [Company].[Company].&[XXX], [Item].[Class - Group - Subgroup].CurrentMember ) CELL PROPERTIES VALUE, BACK_COLOR, FORE_COLOR, FORMATTED_VALUE, FORMAT_STRING, FONT_NAME, FONT_SIZE, FONT_FLAGS

此MDX在没有Salesperson维度的情况下生成:

SELECT NON EMPTY { [Measures].[Sales Amount] } ON COLUMNS 
FROM ( SELECT ( { [Item].[Class - Group - Subgroup].[Class].&[XXX]&[1.], 
[Item].[Class - Group - Subgroup].[Group].&[XXX]&[2.]&[2.2.], 
[Item].[Class - Group - Subgroup].[Subgroup].&[XXX]&[2.]&[2.3.]&[2.3.1.] } ) ON COLUMNS 
FROM ( SELECT ( { [Company].[Company].&[XXX] } ) ON COLUMNS 
FROM [Sales])) WHERE ( [Company].[Company].&[XXX], [Item].[Class - Group - Subgroup].CurrentMember ) CELL PROPERTIES VALUE, BACK_COLOR, FORE_COLOR, FORMATTED_VALUE, FORMAT_STRING, FONT_NAME, FONT_SIZE, FONT_FLAGS

我注意到即使我没有在行上使用任何维度(在上面的示例中我使用了Salesperson维度)它显示错误的总计。

例如,它显示:

Sales Amount 
350

在行上使用Salesperson维度时:

Salesperson   Sales Amount    
001                   1000    
002                    500    
003                    750    
Grand Total:           350
sql-server excel sql-server-2008-r2 pivot-table ssas
2个回答
0
投票

我怀疑你在销售额上设置了一个不寻常的聚合函数,例如ByAccount,AverageOfChildren。应该使用Sum。检查“销售额”度量的属性。

https://docs.microsoft.com/en-us/sql/analysis-services/multidimensional-models/use-aggregate-functions?view=sql-server-2017


0
投票

我想对另一个角度采取另一个角度,并建议不是SQL / SSAS,这是问题,而是Excel。在带有小计和总计的数据透视表中,总计不是由多维数据集计算的,而是由客户端应用程序计算的。我已经经历了几次,发现这是Excel的一个已知问题。解决方案通常涉及在Excel中创建新的计算字段以提供总计。这是令人沮丧的,特别是如果Excel是访问多维数据集的其他用户的首选客户端应用程序。如果有任何安慰,我在Tableau等其他工具中也经历了一两次,但由于不同的解决方案原因略有不同。

以下是Microsoft KB确认问题的链接。影响版本2003-2019 !!!

https://support.microsoft.com/en-us/help/211470/calculated-field-returns-incorrect-grand-total-in-excel

© www.soinside.com 2019 - 2024. All rights reserved.