我有3个字段:ID,日期,比率。对于每个ID有多个日期和价格从表中来,我会打电话的“历史”带有多个条目的ID需要更改为每个ID一个条目
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,日期2011,2010的日期,日期2009与相应的费率(或空的解决方案/如果当年不存在费率条目,则为空)填充日期字段。
ID Date2011 Date2010 Date2009
1 1.2 1.8 null
2 null null 0.2
3 null 0.9 null
我一直在努力获得一个支点与此工作,现在我试图使用case语句。
这是我到目前为止有:
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
的问题,现在我得到的是每个不同的速度都有自己的线路。例如:
ID Date2011 Date2010 Date2009 1 1.2 null null 1 null 1.8 null 2 null null 0.2 3 null 0.9 null
你尝试过什么了吗? – 2012-04-12 18:38:52
你在找什么是PIVOT命令:http://msdn.microsoft.com/en-us/library/ms177410.aspx – diaho 2012-04-12 18:53:01
@specialed你看到我的PIVOT答案了吗? – Taryn 2012-04-16 16:00:11