SQL 重复查询,横向显示,该怎么处理

SQL 重复查询,横向显示
请问下图的查询怎么实现,在线急等..............
SQL 重复查询,横向显示,该怎么处理
------解决思路----------------------
--看你的需求,只有用动态查询了
DECLARE @SQL NVARCHAR(MAX)
DECLARE @M INT,@I VARCHAR(10)
SET @SQL='SELECT id'
SELECT TOP 1 @M=COUNT([time])FROM TB GROUP BY id ORDER BY COUNT([time])DESC
SET @I=1
WHILE @I<=@M
SELECT @SQL=@SQL+',MAX(CASE WHEN RN='+@I+' THEN [time] END)[time'+@I+']',@I=@I+1
SET @SQL=@SQL+'FROM(SELECT *,ROW_NUMBER()OVER(PARTITION BY id ORDER BY GETDATE())RN FROM TB)T GROUP BY id ORDER BY id'
EXEC(@SQL)

------解决思路----------------------

SELECT id
    ,MAX(CASE WHEN RN=1 THEN [time] END)[time1]
    ,MAX(CASE WHEN RN=2 THEN [time] END)[time2]
    ,MAX(CASE WHEN RN=3 THEN [time] END)[time3]
    ,MAX(CASE WHEN RN=4 THEN [time] END)[time4]
    ,MAX(CASE WHEN RN=5 THEN [time] END)[time5]
    ,MAX(CASE WHEN RN=6 THEN [time] END)[time6]
FROM(SELECT *,ROW_NUMBER()OVER(PARTITION BY id ORDER BY GETDATE())RN FROM TB)T
GROUP BY id ORDER BY id