Ho scritto questa query:pivot con una quantità indefinita di valori distinti
SELECT s, [1] AS a1, [2] AS a2, [3] AS a3, [4] AS a4
FROM (SELECT grade, aid, s FROM m) p
PIVOT
(
SUM(grade)
FOR aid IN ([1], [2], [3], [4])
) AS pvt ORDER BY pvt.s;
che restituisce il risultato:
s a1 a2 a3 a4
1 25 69 95 56
2 27 99 16 87
. . . .
99 98 12 34 76
Che è esattamente il risultato che voglio. Il mio problema è che non ci saranno sempre quattro valori distinti in 'aiuti'. È possibile riscrivere questa query (o utilizzare una stored procedure) in modo che la quantità di colonne 'a *' dipenda dal numero di valori distinti in 'aiuto'?
Wow grazie, è proprio quello che voglio! –
+1 - Anche se per essere nitpicky, ti manca l'alias delle tue colonne – Lamak