我正在从SQL Server 2005数据库中检索几条记录:
我想透过数据来显示结果如下:
日期和流程可以无限制,所以我想使用动态支点。我尝试了一些解决方案但无法使其正常工作。
答案 0 :(得分:1)
嗯,首先,你不能在表中拥有无限数量的列,所以我假设你有更少的1023个进程。无论如何,你需要使用动态支点:
DECLARE @Processes AS NVARCHAR(MAX), @Query AS NVARCHAR(MAX);
SELECT @Processes = STUFF(( SELECT DISTINCT ',' + QUOTENAME(Process)
FROM YourTable
WHERE Process IS NOT NULL
FOR XML PATH(''),
TYPE).value('.', 'NVARCHAR(MAX)'),1,1,'')
SET @Query = '
SELECT *
FROM YourTable T
PIVOT(SUM([Percent]) FOR Process IN ('+@Processes+')) AS PT'
EXEC(@Query)
Here is a sqlfiddle现场演示。