小编muy*_*ani的帖子

SSRS使用FOR XML自动使子查询列别名化

我有一个针对SQL Server数据库运行的查询.其中一列使用该STUFF()功能.

当我在SQL编辑器窗口中运行查询时,结果值如下所示:

1234
Run Code Online (Sandbox Code Playgroud)

当我尝试在SSRS报告中使用此查询时,SSRS会自动在STUFF()函数中放置一个列别名,从而产生如下所示的值:

<Expr1>, 1</Expr1><Expr1>, 2</Expr1><Expr1>, 3</Expr1><Expr1>, 4</Expr1>
Run Code Online (Sandbox Code Playgroud)

两者之间的唯一区别是,当我在SSRS中保存查询时,会自动添加术语"AS Expr1"(请参阅​​下面的代码).

如何防止SSRS自动添加此别名并按原样运行查询?

   SELECT 
        FirstName, 
        LastName, 
        CourseTitle,
        LastLoginDate,
        NoOfModules,
        COUNT(CourseCompleted) AS ModulesStarted,
        STUFF(
          (
            SELECT ','  + CAST(CourseModule AS varchar(20)) -- SSRS puts "AS Expr1" here
            FROM EDSF 
            WHERE 
                FirstName = e.FirstName AND 
                LastName = e.LastName AND 
                Coursecompleted = '1' AND 
                CourseTitle = e.CourseTitle
            FOR XML PATH('')
          ),1,1,''
         ) AS CoursesCompleted
    FROM EDSF  e
    WHERE 
        Coursecompleted = '1' OR 
        Coursecompleted = '0'
    GROUP BY 
        FirstName, 
        LastName, …
Run Code Online (Sandbox Code Playgroud)

sql-server reporting-services

7
推荐指数
1
解决办法
1920
查看次数

标签 统计

reporting-services ×1

sql-server ×1