OLAP立方体中,当属性被过滤时,Grand Total显示错误

15

用户试图检查每位销售人员的销售额。示例数据:

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

看起来没问题,但在立方体中我们有以下层级结构 公司 > 班级 > 组 > 子组 如果用户尝试在过滤器中使用此层次结构,则总计失败(如果在此层次结构中取消选中任何属性)。 示例:

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

在之前我们尝试过筛选日期属性时也遇到相同的问题,如果没有选择每个月的每一天,总计会显示错误。

您有什么想法为什么会这样,如何解决?

Sales Amount是一个实际的度量(不是计算出来的度量),它是从SQL视图中选择的(每个指标都是如此)。

Wrong Grand Total

我在这里问了同样的问题,但没有人能回答它。

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

Clean MDX Calculations

Wrong Grand Total

编辑

我注意到当进行如下筛选时会出现问题:

Hierarchy filter

像上面的图像一样从层次结构的第一级选择1个元素,从第2级选择1个元素,从第3级选择1个元素。

如果没有筛选第三级,则显示正确的总计。

编辑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:

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尺寸),它仍会显示错误的Grand Total。

例如,它会显示:

Sales Amount 
350

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

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

@Piotr 我可以使用管理工具执行MDX,但我不知道它如何帮助我。正如我之前提到的,我尝试删除所有MDX计算,但总计仍然不正确。在立方体中有一些角色,但这些角色对我没有影响,我可以完全访问该立方体。 - Infinity
我的意思是在SSAS服务器上启动跟踪,它将允许您保存Excel执行的实际MDX。保存后,尝试在SSMS中运行它并比较结果。这将帮助您确定错误发生的位置:MDX生成、MDX执行或Excel本身。 - Piotr Palka
我认为现在是时候打开微软支持工单了,没有数据库访问权限很难弄清楚任何问题。 - Piotr Palka
@Piotr $500元开一个支持票?我已经在这里描述了我的问题https://support.microsoft.com/zh-cn/supportforbusiness/productselection,在第三步,他们要求选择一个价值$500的计划,或者我错了吗? - Infinity
1
我不知道。我有Visual Studio(以前的MSDN)订阅,其中包括一些支持票据,然后我们有企业协议。请检查您的组织中是否有人拥有它。https://learn.microsoft.com/en-us/visualstudio/subscriptions/vs-tech-support - Piotr Palka
显示剩余5条评论
2个回答

1

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

这里是一个链接指向微软 KB 承认了这个问题。影响版本为 2003-2019!!!

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


谢谢您的回答,但是看起来我的问题与您提供的链接中列出的不同。这是物理度量(而不是计算字段),聚合函数设置为求和,并且没有乘法,也许这是Excel的错误,但看起来与那个不同。 - Infinity
Excel已知问题是它不能正确计算物理量的总数。我的答案是,解决方案(而不是问题)是在Excel中创建一个计算字段。我知道很难相信这是一个持续存在且广泛存在的Excel错误,但不幸的是它确实存在! :) - Adam Rene

0

谢谢您的回答,但它已经是“Sum”了。这是截图:https://i.ibb.co/XV8BJvN/Sum.png - Infinity
你能发布一下Visual Studio中的Cube维度使用选项卡吗?希望里面有一些内容(例如多对多关系)。 - Mike Honey
我看到了一个M2M与冰箱尺寸相关的关系。是否有牵涉到这方面?如果是这样,那么SSAS正在按照设计工作,而且您有许多与单个销售事实行相关的冰箱成员。 - Mike Honey
哪些维度提供了类别-组-子组、公司、销售人员?哪个度量组提供了销售金额?分享整个“维度使用”选项卡 - 你之前的图片被裁剪了。 - Mike Honey
1
在这种情况下,我已经没有主意了。看起来像是M2M关系的影响,但从你的描述中并没有涉及到。祝好运! - Mike Honey
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接