2011-06-23 38 views
2

类似的问题,我前面柱拆分总和超过一个ID

具有包含本表

ID, Year, Revenue 
1, 2009, 10 
1, 2009, 20 
1, 2010, 20 
2, 2009, 5 
2, 2010, 50 
2, 2010, 1 

是否有可能做一个查询,导致类似这样的东西吗?

ID 2009 2010 
1 30 20   
2 5 51 

回答

3

你想用PIVOT

here

在这里:How can i use pivot?

更新

随着新的信息(Teradata的数据库),这里的解决方案:

select 
    ID, 
    Sum(CASE When Year = 2009 then Revenue ELSE 0 END) as Y2009, 
    Sum(CASE When Year = 2010 then Revenue ELSE 0 END) as Y2010 
From 
    YourTable 
Group by ID 
+0

可悲的是数据库不是微软而是Teradata的 – Overseer10

+0

更新的解决方案会产生你正试图完成的结果。面临的挑战是,对于每年添加到数据库的数据,最终都需要修改SQL以将其包含在结果中。 –

+1

@Rob一个解决方案是让您的应用程序组装SQL查询字符串。 –