SQLServer:创建动态数据透视表的存储过程出现了什么错误?



我创建了以下存储过程来获取一个动态数据透视表,该数据透视表可以在第一列中任意数量的雇员,在第一行中任意数量的课程

<>之前声明@PivotColumnHeaders VARCHARSELECT @PivotColumnHeaders =合并(@PivotColumnHeaders + ',[' + cast(CourseName as varchar) + ']','[' + cast(CourseName as varchar)+ ']')来自员工,课程声明数据透视表NVARCHAR(MAX)SET @透视表= N'选择*从(选择dbo.employee。名字,dbo.employee。BadgeNo dbo.employee。部门,dbo.employee。组织,dbo.courses。CourseName, dbo.courses.CourseIDdbo。雇员左外连接dbo。dbo. employees . courseid = dbo.courses.CourseID)数据表主(计数(CourseID)对于CourseName在("+ @PivotColumnHeaders +"))数据透视表'执行(@PivotTableSQL)之前

这个存储过程的问题是:当我使用sql server管理工作室工具添加课程和员工时,它给了我以下错误:

Msg 8156, 16层,状态1,17行

数据透视表

xxxxx是表中第一个雇员的名字

在构建列标题时,是否需要在第一个Select语句上指定不同的关键字?我猜一个员工一个员工可能参加了两次或两次以上相同的课程(可能是复习)

最新更新