私はこのクエリを書きました:
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;
それは結果を返します:
s a1 a2 a3 a4
1 25 69 95 56
2 27 99 16 87
. . . .
99 98 12 34 76
これはまさに私が望む結果です。私の問題は、「援助」に常に 4 つの異なる価値があるとは限らないことです。「a*」列の量が「aid」にある個別の値の数に依存するように、このクエリを書き直す (またはストアド プロシージャを使用する) ことは可能ですか?