にピボット私はテーブルを持っているSQL:期間の複数の列
Name | Value1 | Value2
-----+--------+------
A | 2,5,6 | 3,4,7
B | 2,5,6 | 3,4,7
のような私は必要
Name | Period | Value1 | Value2
-----+---------+---------+-------
A 1 2 3
A 2 5 4
A 3 6 7
B 1 2 3
B 2 5 4
B 3 6 7
結果
数が動的であるが、私は簡単にするため、それを処理する方法を知っています、のは3期
は、以下のクエリは私に値1の結果を与えるがあるとしましょう。どのようにして両方の結果を得ることができますか? 私はいつもそれらを別々にしてから参加することができますが、テーブルは本当に大きく、2つではなく4つの値を「結合」する必要があります。私は1つの声明でそれをすることができますか?
SELECT Name,
[1]+','+ [2] + ','+ [3] ValueString
FROM (
select Name, period, cpr from #MyTable
) as s
PIVOT(SUM(Value1)
FOR period IN ([1],[2],[3])
を入手するには、これは本当にピボットではないことに注意してください - それは集合です。ピボットは、明示的に列の値を新しい列に変換します。この場合、たとえば、期間ごとに列を作成することができます。 –