Diciamo che ho alcuni dei dati, sia in una tabella di SQL Server 2008 o di un [tavolo] variabile -typed:Utilizzando PIVOT in SQL Server 2008
author_id review_id question_id answer_id
88540 99001 1 719
88540 99001 2 720
88540 99001 3 721
88540 99001 4 722
88540 99001 5 723
36414 24336 1 302
36414 24336 2 303
36414 24336 3 304
36414 24336 4 305
36414 24336 5 306
Voglio recuperare i dati come un insieme di risultati si presenta così:
author_id review_id 1 2 3 4 5
88540 99001 719 720 721 722 723
36414 24336 302 303 304 305 306
ho il sospetto che l'operatore PIVOT è quello che ho bisogno (secondo this post, comunque), ma io non riesco a capire come iniziare, soprattutto quando il numero di question_id righe la tabella può variare. Nell'esempio sopra, è 5, ma in un'altra query la tabella potrebbe essere popolata con 7 domande distinte.
Questo sembra essere quello di cui ho bisogno. Farò un tentativo e riferire - grazie! –
Si prega di tenere presente la sottoquery. Se si utilizza semplicemente "SELECT * FROM YourTable", tutte le altre colonne coinvolte influiranno sul raggruppamento implicito fornito dalla funzione PIVOT. E se avete errori, commentate la riga 'exec', sostituendola con' select @ qry' –
Non uso mai più [SELECT *] - ho sempre indicato esplicitamente le colonne che accedo - in modo che non sia un problema. E sì, stavo usando [select @qry] per un po 'in modo che potessi vedere/eseguire il debug dell'istruzione SQL genera prima che funzionasse. Il tuo codice ha funzionato come promesso - grazie mille per il tuo aiuto! –