排除总和度量的最后事实行

问题描述 投票:0回答:1

我有一个事实表,其中有2列'timeInEventA','timeInEventB'。这些列存储实际故障单和下一个故障单之间的秒数差。

例如:如果我在2020/01/04 05:00:00处有一个'eventA',而下一张票是2020/01/04 05:01:10,则第一张票中的'timeInEventA'列将的值为“ 70”。

票证可能既没有eventA也没有eventB,因此事实表行中的两个值将为0。

此差异在ETL中计算并存储在事实表中。

问题:客户端将按天筛选时间段。因此,他将选择“在2020/01/03和2020/01/05之间给我timeInEventA和timeInEventB之和”。但是,由于下一个事件不在过滤器范围内,因此决定排除过滤器的最后一个故障单。那么我该怎么做才能排除总和的最后一行寄存器?

我的事实表有这两个度量列,日期维的替代键(例如:20200103),具有分钟粒度的时间的替代键(例如,发生事件05:03:22会产生0503替代键),以及客户维度的代理键。

PS:过去,我在另一种情况下遇到此问题,建议我有一个和度量指向该度量列,一个lastvalue度量指向同一列,并且派生计算减去了lastvalue(MDX: Exclude a member that share same dimension property of a measure )。

但是对于这种情况,这种方法无法解决。如果我的过滤器是20200102到20200108,则此方法将排除计算中的所有20200108值。

最好的问候,路易斯

ssas mdx business-intelligence msbi
1个回答
0
投票

您需要使用上一个非空值来定义另一个度量(这是在SSAS项目中的“多维数据集结构”选项卡->“定义新度量”中完成的)。然后从您的度量中减去它的价值。

© www.soinside.com 2019 - 2024. All rights reserved.