计算的MEASURES中的MDX错误

时间:2018-04-05 22:03:08

标签: mdx

我有这个MDX查询,我想在sql MDX中运行:

WITH  

MEMBER [Measures].[NMESACT1] AS ([Measures].[ValorBase],[BSC Fact].[Periodo].&[+CStr(2018)+01])  
MEMBER [Measures].[NMESACT2] AS ([Measures].[ValorBase],[BSC Fact].[Periodo].&[+CStr(2018)+02]) 
MEMBER [Measures].[NMESACT3] AS ([Measures].[ValorBase],[BSC Fact].[Periodo].&[+CStr(2018)+03])
MEMBER [Measures].[NMESACT4] AS ([Measures].[ValorBase],[BSC Fact].[Periodo].&[+CStr(2018)+04])
MEMBER [Measures].[NMESACT5] AS ([Measures].[ValorBase],[BSC Fact].[Periodo].&[+CStr(2018)+05])  
MEMBER [Measures].[NMESACT6] AS ([Measures].[ValorBase],[BSC Fact].[Periodo].&[+CStr(2018)+06])  
MEMBER [Measures].[NMESACT7] AS ([Measures].[ValorBase],[BSC Fact].[Periodo].&[+CStr(2018)+07])  
MEMBER [Measures].[NMESACT8] AS ([Measures].[ValorBase],[BSC Fact].[Periodo].&[+CStr(2018)+08])  
MEMBER [Measures].[NMESACT9] AS ([Measures].[ValorBase],[BSC Fact].[Periodo].&[+CStr(2018)+09])  
MEMBER [Measures].[NMESACT10] AS ([Measures].[ValorBase],[BSC Fact].[Periodo].&[+CStr(2018)+10])  
MEMBER [Measures].[NMESACT11] AS ([Measures].[ValorBase],[BSC Fact].[Periodo].&[+CStr(2018)+11]) 
MEMBER [Measures].[NMESACT12] AS ([Measures].[ValorBase],[BSC Fact].[Periodo].&[+CStr(2018)+12])  

但我总是得到

  

查询(156,44)解析器:','的语法是不正确的。 (WITH   会员[措施]。[NMESACT1] AS([措施]。[ValorBase],[BSC Fact]。[Periodo]。& [+ CStr(2018)+01])等......

我做错了什么?此致

1 个答案:

答案 0 :(得分:1)

理想情况下,您只需在执行查询的任何工具中构建动态查询。这种方法应该表现最佳,因为下面使用的StrToMember函数会降低查询速度。

MEMBER [Measures].[NMESACT1] AS ([Measures].[ValorBase],[BSC Fact].[Periodo].&[201801])  

但是如果由于某种原因它需要是一个带有@Yr参数的静态查询,你可以传入" 2018"你可以这样做:

MEMBER [Measures].[NMESACT1] AS ([Measures].[ValorBase],StrToMember("[BSC Fact].[Periodo].&["+CStr(@Yr)+"01]",CONSTRAINED))  

但是,如果您希望查询在没有参数的情况下工作,并且没有客户端工具构建查询,那么以下内容应该有效:

MEMBER [Measures].[NMESACT1] AS ([Measures].[ValorBase],StrToMember("[BSC Fact].[Periodo].&["+CStr(2018)+"01]",CONSTRAINED))