2016-10-10 17 views
1

次のように私はテーブルを持っている:として私はSQLでそれを回転したいSQLピボットテーブルのグループ化

Date  Ticket Question Response 
2016-10-01 1  Score?  10 
2016-10-01 1  Reason?  Awesome 
2016-10-02 2  Score?  9 
2016-10-02 2  Reason?  Good 
2016-10-03 3  Score?  8 
2016-10-03 3  Reason?  Okay 

Date  Ticket Score? Reason? 
2016-10-01 1  10  Awesome 
2016-10-02 2  9  Good 
2016-10-03 3  8  Okay 

は、誰かが助けてくださいことはできますか?必要に応じて詳細をお知らせいたします。

enter image description here

答えて

1

それは簡単な条件の集約がすべき、ダイナミックによってする必要がない場合。

Select Date 
     ,Ticket 
     ,Score = max(case when Question='Score?' then Response else null end) 
     ,Reason = max(case when Question='Reason?' then Response else null end) 
From YourTable 
Group By Date,Ticket 
-1
SELECT Date, 
     Ticket, 
     MAX(CASE WHEN Question = 'Score?' THEN Response END   
      ) AS Score?, 
     MAX(CASE WHEN Question = 'Reason' THEN Response END   
      ) AS Reason?, 
    FROM table 
GROUP BY Date,Ticket 
; 
0

PIVOTを使用して以下にしてみてください。

Select * from 
(Select * from table) x 
PIVOT 
(
    MAX(Response) FOR Question IN ([Score?], [Reason?]) 
) p