Ho un database di sondaggi con una colonna per ogni domanda e una riga per ogni persona che risponde. Ogni domanda si risponde con un valore da 1 a 3.In SQL, come posso contare il numero di valori in una colonna e quindi ruotarlo in modo che la colonna diventi la riga?
Id Quality? Speed?
-- ------- -----
1 3 1
2 2 1
3 2 3
4 3 2
Ora, devo visualizzare i risultati come una riga per domanda, con una colonna per ogni numero di risposta, e il valore di ogni colonna è il numero di risposte che hanno usato quella risposta. Infine, ho bisogno di calcolare il punteggio totale, che è il numero di 1 più due volte il numero di 2 più tre volte il numero di tre.
Question 1 2 3 Total
-------- -- -- -- -----
Quality? 0 2 2 10
Speed? 2 1 1 7
C'è un modo per farlo in SQL set-based? So come farlo usando loop in C# o cursori in SQL, ma sto cercando di farlo funzionare in uno strumento di reporting che non supporta i cursori.
Vuoi fare questo in una particolare RDBMS? –
Le chiavi id rappresentano singole domande o singoli utenti? – Kenneth
quale strumento di reporting –