ID、日付、レートの3つのフィールドがあります。各IDについて、私はID、日付2011、日付2010、対応する速度との日2009(またはnullを持つソリューションが必要「歴史」複数のエントリを持つIDをIDごとに1つのエントリに変更する必要があります
ID Date Rate
1 12/12/11 1.2
1 08/10/10 1.8
2 01/01/09 0.2
2 03/12/08 0.5
3 06/01/12 1.1
3 07/20/10 0.9
....
と呼ぶことにしますテーブルから複数の日付と料金があります/その年にレートエントリが存在しない場合は空白)、日付フィールドに値を入力します。
ID Date2011 Date2010 Date2009
1 1.2 1.8 null
2 null null 0.2
3 null 0.9 null
私はピボットをこれで動作させるのに苦労し、現在ケースステートメントを使用しようとしています。
これは私がこれまで持っているものです:私は今取得しています
SELECT id, date, rate,
CASE WHEN date <= '12/31/11' AND date >= '1/1/11' THEN rate END AS '2011',
CASE WHEN date <= '12/31/10' AND date >= '1/1/10' THEN rate END AS '2010',
CASE WHEN date <= '12/31/09' AND date >= '1/1/09' THEN rate END AS '2009'
FROM history
ORDER BY id
問題は、それぞれ異なるレートでは、それ自身のラインを持っています。例:限り、あなたはこれらのみ3年間の範囲を必要としてこれを行うには
ID Date2011 Date2010 Date2009 1 1.2 null null 1 null 1.8 null 2 null null 0.2 3 null 0.9 null
あなたはまだ何を試してみましたか? –
あなたが探しているのはPIVOTコマンドです:http://msdn.microsoft.com/en-us/library/ms177410.aspx – diaho
@specialed私のPIVOTの回答を見ましたか? – Taryn