日期维度不完整的聚合类型 'Close'

Aggregation Type 'Close' with incomplete Date Dimension

我们有一个架构,我们每天显示过去两个月,每月显示过去两年。
为了摆脱日期维度中的日子,我们在透视中删除它们。

不幸的是,直接在维度中删除是行不通的,因为我们必须在那里给出具体日期(例如 2020-10-01)而不是 'two months ago'。然后我们必须每个月手动更改它。

无论如何,只要我们不将高级聚合类型(例如关闭)用于我们的度量,这一切都可以正常工作。一旦我们这样做,如果我们想查看过去两个多月以前的每月度量值,我们就会得到一个错误(找不到每日值,因此显然找不到每天的最后一个值)。

2020 年 9 月声明失败:

自 2020 年 10 月起声明成功:

使用这些具有不完整时间维度的复杂聚合类型的最佳方法是什么?

也许您可以从此解决方案中受益。我为我的客户取得了一些成就 'similar':

  • 创建一个包含所需周期的集合(基于 MDX 定义)
  • 在主仪表板中将此集用作主 LOV(结合嵌入式报告)
  • 从应用程序中禁用 DATE 层次结构

例如:

create set [periods] as 
 filter( [Time].[Time].[month].members,[time].[time].currentmember.properties('key', typed) > _today()->withDayOfMonth(1)->minusMonths(2))
+ filter( [Time].[Time].[quarter].members,[time].[time].currentmember.properties('key', typed) > _today()->withDayOfMonth(1)->minusMonths(24))

现场示例(具有不同的动态周期):

(1) = 主 LOV,加载了去年、前年、过去 12 个月、过去 24 个月、过去 4 年,(2) 详细报告的 LOV 作为选项卡,(3) 嵌入式报告

我找到了这个用例的解决方案:

我向日期维度添加了一个新层次结构 'day',并将此新层次结构用于这些度量的 roll_up 层次结构的唯一目的。此层次结构不会被过滤,因此不会遗漏任何日期,但它也不会用于在报表中显示。因此,用户只会看到过滤后的层次结构,并且仍然会在月份级别显示正确的数字。