Sql server SQLServer:创建动态数据透视表的存储过程有什么错误?
我创建了以下存储过程以获得一个动态透视表,该表可以在第一列中扩展任意数量的员工,在第一行中扩展任意数量的课程 DECLARE @PivotColumnHeaders VARCHAR(MAX) SELECT @PivotColumnHeaders = COALESCE( @PivotColumnHeaders + ',[' + cast(CourseName as varchar) + ']', '[' + cast(CourseName as varchar)+ ']' ) FROM employee, courses DECLARE @PivotTableSQL NVARCHAR(MAX) SET @PivotTableSQL = N' select * from ( SELECT dbo.employee.Name, dbo.employee.BadgeNo, dbo.employee.Division, dbo.employee.Organization, dbo.courses.CourseName, dbo.courses.CourseID FROM dbo.employee LEFT OUTER JOIN dbo.courses ON dbo.employee.CourseID = dbo.courses.CourseID ) DataTable PIVOT ( Count(CourseID) FOR CourseName IN ( '+ @PivotColumnHeaders+' ) ) PivotTable ' EXECUTE(@PivotTableSQL) 此存储过程的问题是:当我使用sql server management studio工具添加课程和员工时,它给了我以下错误: Msg 8156,16级,状态1,第17行 为“数据透视表”多次指定了列“xxxxx”Sql server SQLServer:创建动态数据透视表的存储过程有什么错误?,sql-server,sql-server-express,Sql Server,Sql Server Express,我创建了以下存储过程以获得一个动态透视表,该表可以在第一列中扩展任意数量的员工,在第一行中扩展任意数量的课程 DECLARE @PivotColumnHeaders VARCHAR(MAX) SELECT @PivotColumnHeaders = COALESCE( @PivotColumnHeaders + ',[' + cast(CourseName as varchar) + ']', '[' + cast(CourseName as
xxxxx是表中第一个员工的姓名。在构建列标题时,是否需要在第一个Select语句中指定distinct关键字。我猜一个员工可能参加过两次或两次以上的同一课程,或者是复习