MDX脚本中子句的评估顺序是什么?
WITH
MEMBER measures.A AS ...
MEMBER measures.B AS ...
SET S1 AS ...
SELECT
{
measures.A
,measures.B
,measures.x
} ON COLUMNS
{S1} HAVING <condition> on ROWS
FROM [Cube]
WHERE ({S2})
Run Code Online (Sandbox Code Playgroud)
FROM WHEREWITHSELECTHAVING?
但也许不是那么简单,因为a MEMBER和a SET在上下文方面有不同的处理方式 - 所以如果这个顺序是正确的,那么上下文如何结合?
我会说:
通过步骤3中的"成员位置",我指的是成员存在的信息,以及层次结构中可能位于哪个层次结构中的信息.这不涉及成员定义表达式.这将在步骤5和6中进行评估.但步骤4需要该位置.
轴的并行评估意味着查询处理中的轴之间没有关系.
另请注意,这是概念视图.物理上,步骤6可以在步骤4的处理期间发生,或者优化器决定的是正确的执行顺序,只要结果是相同的.