Sto usando Microsoft SQL Server 2008.
Ho una tabella che sembra qualcosa di simile:Come trasporre un gruppo di risultati da SQL
|======================================================|
| RespondentId | QuestionId | AnswerValue | ColumnName |
|======================================================|
| P123 | 1 | Y | CanBathe |
|------------------------------------------------------|
| P123 | 2 | 3 | TimesADay |
|------------------------------------------------------|
| P123 | 3 | 1.00 | SoapPrice |
|------------------------------------------------------|
| P465 | 1 | Y | CanBathe |
|------------------------------------------------------|
| P465 | 2 | 1 | TimesADay |
|------------------------------------------------------|
| P465 | 3 | 0.99 | SoapPrice |
|------------------------------------------------------|
| P901 | 1 | N | CanBathe |
|------------------------------------------------------|
| P901 | 2 | 0 | TimesADay |
|------------------------------------------------------|
| P901 | 3 | 0.00 | SoapPrice |
|------------------------------------------------------|
Vorrei invertire le righe per essere colonne in modo che questo tavolo assomiglia a questo:
|=================================================|
| RespondentId | CanBathe | TimesADay | SoapPrice |
|=================================================|
| P123 | Y | 3 | 1.00 |
|-------------------------------------------------|
| P465 | Y | 1 | 0.99 |
|-------------------------------------------------|
| P901 | N | 0 | 0.00 |
|-------------------------------------------------|
(i dati di esempio Ecco arbitrariamente costituiti, per cui il suo stupido)
La tabella di origine è una tabella temporanea con circa 70.000 righe.
Quale SQL dovrei scrivere per eseguire questa operazione?
Aggiornamento
- io non so nemmeno se PIVOT è la strada giusta da percorrere.
- Non so su quale colonna mettere PIVOT.
- La documentazione menziona
<aggregation function>
e<column being aggregated>
e non voglio aggregare nulla.
Grazie in anticipo.
Hai esaminato 'PIVOT'? http://msdn.microsoft.com/en-us/library/ms177410.aspx –
da quello che ho visto del comando 'PIVOT', devi usare una funzione di aggregazione. Non voglio una funzione aggregata, voglio solo che i valori vengano capovolti. – funkymushroom