Gespeicherte Prozedur erstellen Pivot-Tabelle mithilfe einer Temp-Tabelle

Ich habe eine Tabelle Survey_Data_Response, der gefüllt ist mit einem "insert into" - Anweisung aus zwei Tabellen - Survey_Question und Survey_Response, Sie trat auf die QuestionID.

Möchte ich eine SP, drehen Sie den Survey_Data_Response Tabelle, und speichern Sie die Ergebnisse in eine temporäre Tabelle, so kann ich Abfragen, Berichte zu entwickeln.

Den Survey_Data_Response Tabelle hat Felder - QuestionID, ResponseID, Frage, Antwort, ResponseDateTime,moduleID.

Die Anzahl der Fragen ändern können, je nach Umfrage.

 QuestionID   Question   Response    ResponseDateTime       ResponseID   ModuleID
 123           Age          34       2011-06-06 18:21:00     ABC            123
 345           Gender       M        2011-06-06 18:21:00     DEF            123
 567           Phone       444-4444  2011-06-06 18:21:00     HIG            123
 123           Age          23       2011-06-07 12:01:00     MNO            123
 789           Postal Code 90988     2011-06-07 12:01:00     XYZ            123

Muss ich die pivot-Tabelle so Aussehen, die Fragen, die als Spalten und die Antwort in das entsprechende Feld ein.

   ResponseID   Age    Gender     Phone     Postal Code     ResponsDateTime 
   ABC          34      M        444-4444                   2011-06-06 18:21:00
   XYZ          23                            90988         2011-06-07 12:01:00

Habe ich versucht, zahlreiche pivot-Abfragen in den letzten 2 Tagen aber habe keine Glück. Dies ist, wo ich bin, gibt es die Spaltenüberschriften, sondern die Antworten auf die Fragen werden nicht besiedelt.

 DECLARE @cols VARCHAR(1000)
 DECLARE @sqlquery VARCHAR(2000)

 SELECT  @cols = STUFF(( SELECT distinct  ',' + QuoteName(question)
                    FROM temp_SURVEY_DATA FOR XML PATH('') ), 1, 1, '') 
 SET @sqlquery = 'SELECT * FROM
  (SELECT DynamicQuestionResponseID,question,moduleid 
   FROM temp_SURVEY_DATA ) base
   PIVOT (max(moduleid) FOR question
   IN (' + @cols + ')) AS finalpivot'

 EXECUTE ( @sqlquery )

Kann mir jemand helfen zu verstehen, warum diese Pivot nicht funktioniert und wie es funktioniert?

Dank

InformationsquelleAutor Stan | 2012-04-06

Schreibe einen Kommentar