我的mdx查询中的一个小错误

时间:2013-12-17 20:13:29

标签: sql ssas mdx cube olap-cube

    SCOPE([Trans Tasks FFMS Farah GVV].[Task Status].&[1].MEMBERS, [Trans Tasks FFMS Farah     GVV].[Task Sub Status].&[1].MEMBERS);
    THIS =[Measures].[Maximum Insertion DT];
    END SCOPE;

以上查询生成错误(“范围的语法不正确”)

我想做什么:我想只为status = 1和substatus = 1的值对显示max insertionid。在立方体中,所有状态和子状态值都显示但我希望计算仅适用于那些(如上所述的1,1)。这是正确的方法吗? 最大插入ID是我创建的用于返回最大插入ID的度量。

2 个答案:

答案 0 :(得分:1)

什么是[Trans Tasks FFMS Farah GVV]。[任务状态]。& [1] .MEMBERS假设是什么意思? [Trans Tasks FFMS Farah GVV]。[任务状态]。& [1]已经是会员。因此,

SCOPE({([Trans Tasks FFMS Farah GVV].[Task Status].&[1],
        [Trans Tasks FFMS Farah GVV].[Task Sub Status].&[1])
     });
    THIS =[Measures].[Maximum Insertion DT];
END SCOPE;

应该有用。

答案 1 :(得分:1)

让其他人受益:范围关键字不能用于计算度量的表达式中。相反,我使用和Case语句(本来可以使用IIF,但在某些情况下我给我带来了问题)。 case语句就像status和substatus = 1然后调用max measure一样。