我的任务是将现有的MDX度量(从多维模型)转换为DAX(表格模型)。在此任务期间,我发现在DAX中没有像在MDX中那样使用“创建成员”选项的功能。但是我有一些通过此函数在此多维数据集中创建的成员(不是在DWH中)。在这种情况下,我试图找出如何在表格模型(DAX)中执行相同操作(等效)
我现在正在替换一部分代码:
CREATE MEMBER CURRENTCUBE.[Condition].[Condition].[All].[NEW+USED]
AS [Condition].[Condition Type].[NEW]+[Condition].[Condition Type].[USED]
图片:
我有一个想法,就是使用UNION在此表的基础上创建一个VIEW,以在该VIEW中添加新行“ NEW + USED”,然后使用多维数据集内部的SWITCH(DAX函数)进行所有测量
例如:
NVC:=
VAR GALC = [ABC] + [CDE]
RETURN SWITCH(
SELECTEDVALUE('Condition'[ConditionTotal]);
"ConditionTotal"; GALC;
"NEW+USED"; CALCULATE(
GALC;
FILTER(ALL('Condition'[ConditionDescription]); 'Condition'[ConditionDescription] = "New" && 'Condition'[ConditionDescription] = "Used")
)
)
但是我不确定这是否是正确的方法,因为在这种情况下,我应该填充表中的所有列,并且其中一些列应与多维数据集内的事实表建立关联。
答案 0 :(得分:0)
我现在通常发现的唯一一个好的解决方案是这样的:
测量示例:
My_measure:=
VAR New_var = CALC(SUM('FactTable'[Price]), 'Condition'[ConditionDescription] = "New")
VAR Used_var = CALC(SUM('FactTable'[Price]), 'Condition'[ConditionDescription] = "Used")
VAR New_and_Used_var = CALC(SUM('FactTable'[Price]), ALL('Condition'), 'Condition'[ConditionDescription] in {"New","Used"})
RETURN
SWITCH (SELECTEDVALUE('Condition'[ConditionDescription]),
"New", New_var,
"Used",Used_var,
"New + Used", New_and_Used_var
)
我唯一要做的一件事是我在“ FactTable”和这个新的数据库对象(视图)之间以INACTIVE(在引用窗口中未选中“ Active”标志)的方式进行引用,因为它不能正确地与此标志一起使用。 / p>