在 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 多维数据集中,过滤属性时总计错误 的相关文章

  • 使用 PhpSpreadsheet PHP 设置单元格边框样式

    我使用 PhpSpreadsheet 来读取或写入 Excel 文件 我想向我的 Excel 添加边框样式 所以我使用了以下代码
  • 如何连接sql中具有相同值但在同一个表的不同列中的行?

    我正在尝试合并来自不同列的具有相同值的数据 并且仅停止显示没有连接值的记录 例如我有 ID TaxDecNo PrevTaxDec 1 5374 11135 2 9864 7394 3 11135 21784 4 7394 6872 5 2
  • 比较 EXCEL 中的列本身以检查其是否有重复值

    假设我有一个名为项目代码的列 如下所示 row code 1 A123 2 B123 n A123 代码列中的值可能出现多次 如何使用Excel公式或Excel中的任何方法检查列中的重复记录 Thanks 根据您使用的 Excel 版本 您
  • 计算序列中的重复值

    如何使用Excel计算列中的重复数据 Example A B apple 1 apple 2 apple 3 ball 1 bat 1 dog 1 dog 2 gole 1 gole 2 gole 3 gole 4 我认为对于你的情况中的所
  • SQL 中基于下一条记录和上一条记录的复杂排序

    这是一个后续问题根据 SQL 中的下一条记录和上一条记录进行排序 https stackoverflow com questions 30477803 sorting based on next and previous records i
  • 在c#中创建sql连接

    我是这个网站的新手 也是编程的新手 我目前正在通过销售点创建库存系统 它使用模态和非模态形式 我的问题是 我正在研究change password对话框必须连接到数据库才能覆盖密码字段 我使用的数据库是Microsoft SQL Serve
  • SQL Server 2008R2 和创建 XML 文档

    论坛上的第一篇文章 因为我真的被这个问题困住了 以下查询正确地将有效的 XML 文档分配给 xTempXML 变量 类型为 xml 注 文档的长度 转换为varchar max 711 select xTempXML select Pres
  • 使用宏从 Excel 电子表格中删除任何非指定字符

    我正在尝试通过删除任何非标准字符来清理 Excel 中的 CSV 文件 我唯一关心保留的字符是 A Z 0 9 和一些标准标点符号 任何其他字符 我想删除 当它找到包含我未指定的任何字符的单元格时 我已经得到了以下宏来删除整行 但我不确定如
  • 生成Excel文件错误

    我在经典 ASP 中使用以下代码生成 Excel 文件 代码很简单并且有效 我在 Windows Vista x86 上的 IIS 7 0 下运行代码 两个问题 有一个奇怪的警告框 这是屏幕快照 http i27 tinypic com 2
  • Office 365 中 Excel 中 Power Pivot 的计算列中正确的 DAX GROUPBY 语法是什么

    将以下语法输入到下面在 Excel Office 365 版本 的 powerpivot 中提供的表 Visits 的计算列公式中 GROUPBY Visits Patient Name First Visit Date MINX CURR
  • SQL返回两行之间的秒差

    这个问题与SQL Server有关 我有下表 id size batch code product code additiontime 1 91 55555 BigD Red 2017 05 15 13 00 00 2 91 55555 B
  • 更改列时快速删除并重新创建多个索引、视图、统计信息

    我的 项目 表中有一个 StoreNumber 列 我想将其更改为 NOT NULL 我最近清理了所有旧数据 以便不存在空条目 但是 当我执行以下语句时 由于对各种视图 索引和统计信息的多重依赖 它失败了 ALTER TABLE Proje
  • 读取 BCP 格式文件时发生 I/O 错误

    今天 我创建了一个新的临时表和一个 BCP fmt 文件 我创建了一些测试数据并尝试从命令行运行 BCP 实用程序 我从之前的工作中获得了大约 20 个不同格式的文件和暂存表 这是我第一次遇到此错误 我该如何修复这个错误 请注意 我在下面添
  • 勾选或取消勾选复选框时输入时间戳

    我有一个 3 行 7 列的工作表 A1 G3 A 和 B 列有 6 个复选框 A1 B3 A 列和 B 列中的框分别链接到 C 列和 D 列 E 列和 F 列中的单元格只是分别复制 C 列和 D 列 实时E1细胞是 C1 and F3细胞是
  • 有什么办法可以加快这个 VBA 算法的速度吗?

    我正在寻找实现 VBAtrie http en wikipedia org wiki Trie 构建能够在相对较短的时间内 少于 15 20 秒 处理大量英语词典 约 50 000 个单词 的算法 由于我实际上是一名 C 程序员 这是我第一
  • VBA将二进制图像转换为网页的base64编码字符串

    我正在尝试读取 JPG 文件并将该文件转换为 base64 编码的字符串 该字符串可用作网页上的嵌入 jpeg 我在网上发现了两个在 VBA 中进行 Base64 编码 解码的函数 它们似乎被广泛接受 编码 解码过程产生了我的原始二进制字符
  • 我可以从 SQL Server 读取元数据来了解最后更改的行/表吗?

    我们有一个数据库hundreds的桌子 有没有某种metaSQL Server 中的数据源 我可以以编程方式查询以获取名称最后更改表和行 或者我们是否需要实施这个我们自己每个表中的字段称为上次更改日期时间 etc 就查明表最后一次修改的时间
  • 从 Sharepoint 到 SQL Server 的实时同步

    我见过许多将 SQL Server 数据同步到 SharePoint 的解决方案 但没有见过将 SharePoint 列表同步到 SQL Server 的解决方案 有谁知道解决方案吗 商业化就好了 或者 我需要编写一个 Web 部件来创建多
  • 从 Excel 应用程序对象中查找位数(32 位/64 位)?

    是否可以从 Microsoft Office Interop Excel ApplicationClass 确定 Excel 是以 32 位还是 64 位运行 Edit该解决方案应该适用于 Excel 2010 和 Excel 2007 此
  • 如何部署“SQL Server Express + EF”应用程序

    这是我第一次部署使用 SQL Server Express 数据库的应用程序 我首先使用实体 框架模型来联系数据库 我使用 Install Shield 创建了一个安装向导来安装应用程序 这些是我在目标计算机中安装应用程序所执行的步骤 安装

随机推荐