Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server stroset函数要求1参数使用元组集表达式。使用了字符串或数字表达式_Sql Server_Reporting Services_Ssas_Mdx_Olap Cube - Fatal编程技术网

Sql server stroset函数要求1参数使用元组集表达式。使用了字符串或数字表达式

Sql server stroset函数要求1参数使用元组集表达式。使用了字符串或数字表达式,sql-server,reporting-services,ssas,mdx,olap-cube,Sql Server,Reporting Services,Ssas,Mdx,Olap Cube,我使用reporting services,使用参数,所以我有如下查询: SELECT NON EMPTY { [Measures].[ReclamosBSC_Reclamos] } ON COLUMNS, NON EMPTY { ([Dim_Tiempo_].[Anio].[Anio].ALLMEMBERS * [Dim_Tiempo_].[Mes].[Mes].ALLMEMBERS * [Dim_Tiempo_].[NombreMesAbrevia

我使用reporting services,使用参数,所以我有如下查询:

SELECT 
    NON EMPTY { [Measures].[ReclamosBSC_Reclamos] } ON COLUMNS, 
    NON EMPTY { ([Dim_Tiempo_].[Anio].[Anio].ALLMEMBERS 
     * [Dim_Tiempo_].[Mes].[Mes].ALLMEMBERS 
     * [Dim_Tiempo_].[NombreMesAbreviado].[NombreMesAbreviado].ALLMEMBERS 
     * [Dim_PlantaCentro_].[IdGrupo].[IdGrupo].ALLMEMBERS 
     * [Dim_PlantaCentro_].[NombreGrupo].[NombreGrupo].ALLMEMBERS 
     * [Dim_PlantaCentro_].[IdDivision].[IdDivision].ALLMEMBERS 
     * [Dim_PlantaCentro_].[NombreDivision].[NombreDivision].ALLMEMBERS 
     * [Dim_PlantaCentro_].[IdPlanta].[IdPlanta].ALLMEMBERS 
     * [Dim_PlantaCentro_].[Planta].[Planta].ALLMEMBERS 
     * [Dim_ClientePadre_].[Dim_ClientePadre_].[Dim_ClientePadre_].ALLMEMBERS ) } 
     DIMENSION PROPERTIES MEMBER_CAPTION, MEMBER_VALUE, MEMBER_UNIQUE_NAME ON ROWS 
FROM 
( 
    SELECT 
        ( STRTOSET(@DimTiempoMes) ) ON COLUMNS 
    FROM 
    ( 
        SELECT 
            ( STRTOSET(@DimTiempoAnio) ) ON COLUMNS 
        FROM 
            [BSC]
    )
) 
CELL PROPERTIES VALUE, BACK_COLOR, FORE_COLOR, FORMATTED_VALUE, FORMAT_STRING, FONT_NAME, FONT_SIZE, FONT_FLAGS
当我使用查询设计器时,它会正确运行,但当我尝试查看报表预览时,它会返回:

stroset函数需要1的元组集表达式 论点使用了字符串或数字表达式


有人能解释一下我的查询出了什么问题吗?

假设预览功能将年和月参数值分别设置为2017和9,您可以按如下方式重写查询:

SELECT 
    NON EMPTY { [Measures].[ReclamosBSC_Reclamos] } ON COLUMNS, 
    NON EMPTY { ([Dim_Tiempo_].[Anio].[Anio].ALLMEMBERS 
     * [Dim_Tiempo_].[Mes].[Mes].ALLMEMBERS 
     * [Dim_Tiempo_].[NombreMesAbreviado].[NombreMesAbreviado].ALLMEMBERS 
     * [Dim_PlantaCentro_].[IdGrupo].[IdGrupo].ALLMEMBERS 
     * [Dim_PlantaCentro_].[NombreGrupo].[NombreGrupo].ALLMEMBERS 
     * [Dim_PlantaCentro_].[IdDivision].[IdDivision].ALLMEMBERS 
     * [Dim_PlantaCentro_].[NombreDivision].[NombreDivision].ALLMEMBERS 
     * [Dim_PlantaCentro_].[IdPlanta].[IdPlanta].ALLMEMBERS 
     * [Dim_PlantaCentro_].[Planta].[Planta].ALLMEMBERS 
     * [Dim_ClientePadre_].[Dim_ClientePadre_].[Dim_ClientePadre_].ALLMEMBERS ) } 
     DIMENSION PROPERTIES MEMBER_CAPTION, MEMBER_VALUE, MEMBER_UNIQUE_NAME ON ROWS 
FROM 
( 
    SELECT 
        { ( STRTOMEMBER('[Dim_Tiempo_].[Mes].[Mes].[' + @DimTiempoMes + ']') ) } ON COLUMNS 
    FROM 
    ( 
        SELECT 
            { ( STRTOMEMBER('[Dim_Tiempo_].[Anio].[Anio].[' + @DimTiempoAnio + ']') ) } ON COLUMNS 
        FROM 
            [BSC]
    )
) 
CELL PROPERTIES VALUE, BACK_COLOR, FORE_COLOR, FORMATTED_VALUE, FORMAT_STRING, FONT_NAME, FONT_SIZE, FONT_FLAGS

使用嵌套子查询将允许您在SELECT子句中包含行轴上的年和月。如果使用WHERE子句,则在SELECT子句中包含年份和月份时会出现错误。

预览报表时使用了哪些@DimTiempoMes和@DIMTIEMPANIO参数值?它们是否与在查询设计器中运行时相同?是的,我想在预览@jhenningerI中使用它,我使用它将参数发送到查询,然后根据它们进行筛选@jhenninger在预览报告时,您可以共享为两个参数发送的值吗?@jhenninger是一个是年,等于2017,另一个是月,等于9,所以我发送DIMTIEMPANIO=2017和DimTiempoMes=9。问题是我用我想要的值设置参数,我可以通过2017年、2016年或2015年,所以查询搜索取决于我传递的值,这就是为什么我有参数。我需要WHERE条款?如何将WHERE子句添加到我的代码中?我使用原始查询的更新更新了答案。这都是假设参数值如您所述被发送进来。但DIMTIEMPANIO和DimTiempoMes并没有在报告中预收费,当我运行预览时,我有两列带有此字段,在那里我插入参数值,然后我clic查看报告,现在报告带有我发送的参数的收费值。这就是为什么我需要WHERE子句,否则我错了?我的答案中的查询包含原始参数,这些参数是在预览时动态设置的。此更新的查询是否与原始查询产生相同的错误?不,它现在引发了另一个问题,非常感谢您的回答!