对半加性测度组的钻取操作

pau*_*ulH 6 sql-server ssas ssdt

我在我正在开发的立方体中创建了一个半加法(最后一个非空)度量。对于该度量值组,我创建了一个钻取操作。当我使用该钻取操作时,它不仅像我预期的那样为每个项目返回一行,而是每个日期的每个项目返回一行,就好像它没有认识到该度量是半可加的。

同样的问题在 2009 年这里这里的几篇 Microsoft Connect 文章中都提到过,但没有评论如何解决这个问题,而且我在这个问题上发现的其他内容很少。

我正在使用 SQL Server 2012 企业版。

是否有针对此问题的解决方案或变通方法?

小智 2

假设它是 SSAS 多维,您可以部署ASSP并构建一个返回正确行的行集操作。行集操作表达式类似于:

ASSP.GetDefaultDrillthroughMDX(Tail(NonEmpty(Existing [Date].[Date].[Date].Members), 1).Item(0))
Run Code Online (Sandbox Code Playgroud)

为了解释该代码,我们获取现有日期(当前单元格上下文中的日期),然后过滤到当前度量值非空值的日期(继承当前单元格上的所有其他过滤器),然后找到最近的日期。

有关此存储过程的更多信息可以在这里找到: http://assstoredprocedures.codeplex.com/wikipage ?title=Drillthrough&referringTitle=Home

请注意,不幸的是,行集操作不能是 Excel 中的双击钻取操作。当用户右键单击单元格并选择“其他操作”时,您必须公开您的操作。

Excel 具有双击行为。双击执行钻取,返回默认列或返回您在为该度量值组定义的钻取操作中定义的默认列。如果我手动执行 DRILLTHROUGH SELECT 语句而不指定所需的列,那么我将取回在钻取操作中定义的标记为默认值的列