Ssas 排除总和度量值的最后一个事实行

Ssas 排除总和度量值的最后一个事实行,ssas,mdx,business-intelligence,msbi,Ssas,Mdx,Business Intelligence,Msbi,我有一个事实表,它有两列,“timeInEventA”,“timeInEventB”。这些列以秒为单位存储实际票证和下一个票证之间的差异 例如:如果我在2020/01/04 05:00:00有一个“事件a”,而下一个票证是2020/01/04 05:01:10,则第一个票证中的“timeInEventA”列的值将为“70” 票证可能既没有eventA,也没有eventB,因此事实表行中的两个值将为0 此差异在ETL中计算并存储在事实表中 问题:客户端将按天过滤时段。因此,他会选择“在2020/0

我有一个事实表,它有两列,“
timeInEventA
”,“
timeInEventB
”。这些列以秒为单位存储实际票证和下一个票证之间的差异

例如:如果我在2020/01/04 05:00:00有一个“
事件a
”,而下一个票证是2020/01/04 05:01:10,则第一个票证中的“timeInEventA”列的值将为“
70

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

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

问题:客户端将按天过滤时段。因此,他会选择“在2020/01/03和2020/01/05之间,给我timeInEventA和timeInEventB的总和”。但已决定排除筛选器的最后一个票证,因为下一个事件超出筛选器范围。那么,如何排除总和的最后一行寄存器?

我的事实表有两个度量列,一个代理键到日期维度(ex:20200103),一个时间的代理键(ex:event Occursed 05:03:22将生成0503代理键),以及一个客户维度的代理键

PS:在过去,我在另一种情况下遇到了这个问题,有人建议我使用一个指向度量列的sum度量,一个指向同一列的lastvalue度量,一个派生计算减去lastvalue()

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

致以最良好的祝愿,
Luis

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

MoazRub,谢谢你的回答,但这不起作用。如果我在我的MDX“在2020/01/10和2020/01/15之间给我来自客户“axz”的票证”中添加了一个过滤器,那么这个“最后一个非空”度量值将得到整个15天的总和。这不是我想要的,我只想要最后一个元素。如果这些天我有14355张票证,我只想要票证号码14355。你能分享你的事实表和示例数据吗?我的事实表有以下列:2个度量值、客户维度的代理键、日期维度的代理键(例如:2020/02/14)和时间维度的代理键(值介于00:00:00到23:59:59之间)客户可以有0、3、15、75、99等。每天在事实表中注册,完全是自由的,门票可以在一天中的任何时刻注册,可以共享相同的时间、相同的分钟。客户一天的最后一次注册可以是11:32:14AM、14:15:07PM、21:17:12PM、23:59:51PM等。再次完全是自由的