本例来自于知识星球中星友的问题,关于DAX的计算逻辑,具体问题如下图,
求前12个月的sales累计数,这两种写法为什么有不同的结果,更具体一点,右边的这种写法,其中VALUES的上下文到底是什么?
这个简单的例子已经涉及到DAX的深层计算逻辑,要理解右边的度量值,你应该知道这几个逻辑
首先,时间智能函数DATESINPERIOD的参数Date,计算逻辑是有个隐含的ALL,即清除了外部上下文对日期的筛选;
其次,CALCULATE从第二个参数开始计算,在第二个参数返回的数据集中计算第一个参数;
知道了前以上两个逻辑,就很好理解了,到2006年6月的时候,才有过去12个月销售不为空的记录,才开始计算[sales]。
至于VALUES的上下文,就是CALCULATE第二个参数DATESINPERIOD返回的过去一年日期,和当前外部上下文没有关系,因为外部上下文已经被时间智能函数清除了。
加入知识星球,问题随时答疑,更多资源分享。
网友评论