在 OLAP 多维数据集中,过滤属性时总计错误

2024-05-01

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

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

看起来不错,但我们有以下层次结构Company > Class > Group > Subgroup在多维数据集中,并且如果用户尝试在过滤器中使用此层次结构 - 总计会失败(如果在此层次结构中未选中任何属性)。样本:

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

当我们尝试过滤日期属性时,我之前注意到了同样的问题,如果没有选择该月的每一天,它也会显示错误的总计。

您知道为什么会发生这种情况以及如何解决它吗?

销售额是物理度量(不是计算度量),它是从 SQL 视图中选择的(每个事实都会发生同样的情况)。

我也问过同样的问题here https://social.msdn.microsoft.com/Forums/sqlserver/en-US/2761cc7c-eccb-4bca-8836-e655a22a53ab/wrong-grand-total-when-attribute-is-filtered?forum=sqlanalysisservices,但没有人能够回答。

我尝试删除所有 MDX 计算(范围),但总计仍然不正确。

EDIT

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

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

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

EDIT 2

我尝试在 SSAS 上进行跟踪,它返回与 Excel 中完全相同的输出。在行上使用销售人员维度时,它生成以下 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 没有销售人员维度:

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

我注意到,即使我没有在行上使用任何维度(在上面的示例中我使用了销售人员维度),它也会显示错误的总计。

例如它显示:

Sales Amount 
350

当在行上使用销售人员维度时:

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

我想从另一个角度来看待这个问题,并建议问题不是 SQL/SSAS,而是 Excel。在具有小计和总计的数据透视表中,总计不是由多维数据集而是由客户端应用程序计算。我已经经历过几次这种情况,并发现这是 Excel 的一个已知问题。该解决方案通常涉及在 Excel 中创建一个新的计算字段来提供总计。这是令人沮丧的,尤其是当 Excel 是其他用户访问多维数据集的首选客户端应用程序时。如果有什么安慰的话,我在 Tableau 等其他工具中也经历过一两次这种情况,但原因略有不同,解决方案也不同。

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 OLAP 多维数据集中,过滤属性时总计错误 的相关文章

随机推荐