数据库年份和表格

时间:2014-04-16 14:31:40

标签: sql database sql-server-2008

我有一个包含3个表ArtNrYearPrice

的数据库
`select * from database` 

将提供类似的内容

ArtNr     - Year - Price
------------------------    
601230001 - 2011 - 100
601230001 - 2012 - 110
601230001 - 2013 - 105
604560001 - 2012 - 250
604560001 - 2013 - 225

如何获得像

这样的结果
ArtNr     - 2011 - 2012 - 2013
------------------------------    
601230001 -  100 -  110 -  105
604560001 - NULL -  250 -  225

2 个答案:

答案 0 :(得分:0)

SELECT  ArtNr,
        MIN(CASE WHEN Year = 2011 THEN Price END) Year2011,
        MIN(CASE WHEN Year = 2012 THEN Price END) Year2012,
        MIN(CASE WHEN Year = 2013 THEN Price END) Year2013
FROM YourTable
GROUP BY ArtNr

答案 1 :(得分:0)

此处需要一个数据透视表(在access / excel中称为'交叉号')。我们可以使用一些案例陈述对选择进行硬编码以涵盖固定的年数,但每次添加或删除一年时都必须重新考虑该解决方案。 @Lamak在下面有这样的解决方案。

或者,如果我有能力(我从来没有),我会切换数据库引擎。以下是三个数据库引擎,它们提供了创建数据透视表的工具: