STRTOSET函数需要1参数的元组集表达式。使用了字符串或数字表达式

时间:2017-10-27 21:22:30

标签: reporting-services mdx

我将此mdx代码导入报告服务:

 WITH 
   MEMBER [Measures].[ParameterCaption] AS 
        [Dim_Tiempo_].[Mes].CURRENTMEMBER.MEMBER_CAPTION 
   MEMBER [Measures].[ParameterValue] AS 
        [Dim_Tiempo_].[Mes].CURRENTMEMBER.UNIQUENAME 
   MEMBER [Measures].[ParameterLevel] AS 
        [Dim_Tiempo_].[Mes].CURRENTMEMBER.LEVEL.ORDINAL 
 SELECT 
     {
       [Measures].[ParameterCaption], 
       [Measures].[ParameterValue], 
       [Measures].[ParameterLevel]
     }  ON COLUMNS , 
     [Dim_Tiempo_].[Mes].Children ON ROWS 
 FROM 
   ( 
     SELECT ( STRTOSET(@DimTiempoAnio) ) ON COLUMNS 
     FROM [BSC]
   );

当我们调用STRTOSET时,我读到了我们需要使用''的其他问题,因为你可以看到我有STRTOSET

( SELECT ( STRTOSET(@DimTiempoAnio) ) 

我将其更改为

( SELECT ( STRTOSET('@DimTiempoAnio') ) 

但我得到

enter image description here

1 个答案:

答案 0 :(得分:0)

受限制的标志有充分的理由 - 它会告诉您输入STRTOSET的字符串是否有效。这条消息正好告诉你" STRTOSET函数中CONSTRAINED标志所施加的重新引发违反了#34; ....所以只是放弃旗帜不是正确的方法。

您是否可以简化操作并尝试在报告中添加以下内容以查看是否会引发异常?

 SELECT 
    STRTOSET(@DimTiempoAnio) ON COLUMNS 
 FROM [BSC];

您需要确保字符串@DimTiempoAnio是一个可以转换为有效mdx集的字符串 - 这将是有效的示例:

StrToSet ('[Geography].[State-Province].Members') 

...所以对于上述内容,只要@DimTiempoAnio等于字符串[Geography].[State-Province].Members,那么它就会感到高兴...所以你作为@DimTiempoAnio输入的字符串不能有效mdx set expression