Action_ePOS_Offtake =
SWITCH (
TRUE (),
SELECTEDVALUE ( ePOS_Action_Time[Action_Time] ) = "Flexible Date Range", [BD_Offtake],
SELECTEDVALUE ( ePOS_Action_Time[Action_Time] ) = "MTD", [MTD_Offtake],
SELECTEDVALUE ( ePOS_Action_Time[Action_Time] ) = "FYTD", [FYTD_Offtake],
SELECTEDVALUE ( ePOS_Action_Time[Action_Time] ) = "FYTD2", 1
)
Action_ePOS_Offtake_var =
VAR a = [BD_Offtake]
VAR b = [MTD_Offtake]
VAR c = [FYTD_Offtake]
RETURN
SWITCH (
TRUE (),
SELECTEDVALUE ( ePOS_Action_Time[Action_Time] ) = "Flexible Date Range", a,
SELECTEDVALUE ( ePOS_Action_Time[Action_Time] ) = "MTD", b,
SELECTEDVALUE ( ePOS_Action_Time[Action_Time] ) = "FYTD", c
)
左边单纯switc,右边是switch+var,明显var的query多三个,查询更慢,为什么?因为即使var是惰性计算,在需要时(return)才会计算,但是,整个dax的上下文也会先一步作用在var的定义里,不管你是否也被立刻计算出来,我先给你一套上下文。

网友评论