Sql server 透视多列

Sql server 透视多列,sql-server,pivot-table,Sql Server,Pivot Table,您好,我有一个SQL查询,它给出如下表所示的结果 ID NAME problem_ID date_of_entry elem_id staff_id 1 abc 456 12/12/2014 789 32 1 abc 768 12/01/2014 896 67 1 abc 897 02/14/2014 87

您好,我有一个SQL查询,它给出如下表所示的结果

ID NAME problem_ID date_of_entry elem_id staff_id 1 abc 456 12/12/2014 789 32 1 abc 768 12/01/2014 896 67 1 abc 897 02/14/2014 875 98 2 bcd 723 02/17/2014 287 09 2 bcd 923 09/13/2014 879 01 2 bcd 878 08/23/2014 hgd 34 我希望结果如下

ID NAME problem_ID_1 problem_ID_2 problem_ID_3 date_of_entry_1 date_of_entry_2 date_of_entry_3 elem_id_1 elem_id_2 elem_id_3 staff_id_1 staff_id_2 staff_id_3 问题id、进入日期、要素id、员工id都是动态的。你能给我一个想法,我应该如何做到这一点使用枢轴功能或任何其他方式

试试这个 我已经完成了两列的问题\u ID和日期\u,您可以在pivot中添加另外两列

这里是fiidle演示

限制列数的步骤

SET @problm = (SELECT DISTINCT TOP N Quotename('problm'+CONVERT(VARCHAR(50), Row_number() OVER(partition BY ID ORDER BY problem_ID)))
                                   + ','
                   FROM   #Products
                   FOR XML PATH(''))

类似地,对其他列执行相同操作。

这是在SQL Server上的Pradeep,您能告诉我如何使用pivot函数获得相同的结果吗result@Var-我没有得到你需要的相同结果..如果你有疑问,我已经使用了pivot函数检查小提琴演示是否仍然存在我可以限制要创建的动态列的数量?使用行号。@Var-SET problm=从产品中为XML路径选择不同的TOP N Quotename'problm'。像这样,你需要为所有其他人做columns@Var-现在检查代码以限制列数
SET @problm = (SELECT DISTINCT TOP N Quotename('problm'+CONVERT(VARCHAR(50), Row_number() OVER(partition BY ID ORDER BY problem_ID)))
                                   + ','
                   FROM   #Products
                   FOR XML PATH(''))