Ssas 解析器';范围';不正确
我正在学习MDX,但在范围方面遇到了问题 作为一个测试,我试图为2011财年创建一个新的衡量标准,但 有语法错误 它不是SSAS脚本中的创建计算度量,而是SSMS中的查询 任何帮助或指点都会很好Ssas 解析器';范围';不正确,ssas,mdx,Ssas,Mdx,我正在学习MDX,但在范围方面遇到了问题 作为一个测试,我试图为2011财年创建一个新的衡量标准,但 有语法错误 它不是SSAS脚本中的创建计算度量,而是SSMS中的查询 任何帮助或指点都会很好 WITH MEMBER [Measures].[Test Scope] AS 1 ( SCOPE ([Measures].[Test Scope]); SCOPE ([Date].[Fiscal Year].&[2011]); THIS =
WITH MEMBER [Measures].[Test Scope]
AS 1
(
SCOPE ([Measures].[Test Scope]);
SCOPE ([Date].[Fiscal Year].&[2011]);
THIS = [Measures].[Reseller Order Quantity] + 10000;
END SCOPE;
END SCOPE;
)
SELECT
{[Measures].[Reseller Order Quantity],[Measures].[Test Scope]} ON COLUMNS
,[Date].[Fiscal Year].[Fiscal Year].MEMBERS ON ROWS
FROM [Adventure Works]
查询(4,2)解析器:“SCOPE”的语法不正确。您不能在查询中使用SCOPE语句。它必须在多维数据集的MDX脚本中定义或在会话上下文中运行。最常见的处理方法如下
WITH MEMBER [Measures].[Test Scope] AS
IIF(
[Date].[Fiscal Year].CurrentMember is [Date].[Fiscal Year].&[2011],
[Measures].[Reseller Order Quantity] + 10000,
NULL
)
SELECT
{[Measures].[Reseller Order Quantity],[Measures].[Test Scope]} ON COLUMNS
,[Date].[Fiscal Year].[Fiscal Year].MEMBERS ON ROWS
FROM [Adventure Works]
在MDX查询中还有非常古老的MDX语法CELL CALCULATION
,我建议不要使用它,因为它很少使用。在我的头顶上看起来是这样的。它可以在任何度量、计算度量或元组上“作用域”。在这里,我们的作用域是一个空的计算度量
WITH MEMBER [Measures].[Test Scope] AS
NULL
CELL CALCULATION [Test Scope Calc]
FOR '([Measures].[Test Scope],[Date].[Fiscal Year].&[2011])'
AS '[Measures].[Reseller Order Quantity] + 10000'
SELECT
{[Measures].[Reseller Order Quantity],[Measures].[Test Scope]} ON COLUMNS
,[Date].[Fiscal Year].[Fiscal Year].MEMBERS ON ROWS
FROM [Adventure Works]
不能在查询中使用范围语句。它必须在多维数据集的MDX脚本中定义或在会话上下文中运行。最常见的处理方法如下
WITH MEMBER [Measures].[Test Scope] AS
IIF(
[Date].[Fiscal Year].CurrentMember is [Date].[Fiscal Year].&[2011],
[Measures].[Reseller Order Quantity] + 10000,
NULL
)
SELECT
{[Measures].[Reseller Order Quantity],[Measures].[Test Scope]} ON COLUMNS
,[Date].[Fiscal Year].[Fiscal Year].MEMBERS ON ROWS
FROM [Adventure Works]
在MDX查询中还有非常古老的MDX语法CELL CALCULATION
,我建议不要使用它,因为它很少使用。在我的头顶上看起来是这样的。它可以在任何度量、计算度量或元组上“作用域”。在这里,我们的作用域是一个空的计算度量
WITH MEMBER [Measures].[Test Scope] AS
NULL
CELL CALCULATION [Test Scope Calc]
FOR '([Measures].[Test Scope],[Date].[Fiscal Year].&[2011])'
AS '[Measures].[Reseller Order Quantity] + 10000'
SELECT
{[Measures].[Reseller Order Quantity],[Measures].[Test Scope]} ON COLUMNS
,[Date].[Fiscal Year].[Fiscal Year].MEMBERS ON ROWS
FROM [Adventure Works]
这真是太棒了,非常感谢Greg,我刚刚发现我也可以使用这个用例。因此,我有完整的图片,如果我也将其作为创建成员添加到多维数据集脚本中,我不需要作用域,我可以使用上面的IIF吗?很抱歉,如果这个简单的问题仍然在试图让我的头脑清醒过来,或者说,这和IIF声明是一样的,或者有区别?创建成员CURRENTCUBE.[Measures].[Test Scope]为NULL;范围(【日期】【会计年度】、【措施】【测试范围】;此=[度量].[经销商订单数量]+10000@RogerClerkwell在多维数据集MDX脚本中强烈建议使用范围方法来提高性能。这太棒了。非常感谢Greg,刚刚解决了我还可以在使用案例时使用它。因此,我有完整的图片,如果我也将其作为创建成员添加到多维数据集脚本中,我不需要作用域,我可以使用上面的IIF吗?很抱歉,如果这个简单的问题仍然在试图让我的头脑清醒过来,或者说,这和IIF声明是一样的,或者有区别?创建成员CURRENTCUBE.[Measures].[Test Scope]为NULL;范围(【日期】【会计年度】、【措施】【测试范围】;此=[度量].[经销商订单数量]+10000@RogerClerkwell在多维数据集MDX脚本中,强烈建议使用范围方法来提高性能。