2010-04-16 65 views
1

我需要在图中显示一些信息,数据保存在SQL Server 2008表中。该图预计有2列,一个用于QuestionNumber,另一个用于Score。SQLServer 2008透视

包含数据的表格具有与问题编号相对应的列名称,即A1,A2,A3,A4,B1,B2,B3,B4,C1,C2。每个问题的得分为1到5.我需要显示一个图表,其中X轴显示A1,A2,A3等,Y轴显示得分。

我想我不知何故需要旋转数据来实现这一点,但我不知道如何。也许不同的技术可以实现这一点,而不是一个关键点,所以我愿意接受任何想法。

回答

1

UNPIVOT可以为你工作,假设你的输入表MyTable的具有列ID,A1,A2,A3,A4,A5:

SELECT id, QUESTION, ANSWER 
FROM 
    (SELECT ID, A1, A2, A3, A4, A5 
    FROM MyTable) AS p 
UNPIVOT 
    (ANSWER FOR QUESTION IN 
     (A1, A2, A3, A4, A5) 
)AS unpvt 
GO 
+0

这工作完全一样我想要的。它也教会我如何使用UNPIVOT,这是一个奖励!非常感谢您花时间分享您的知识,非常感谢。 – Mitch 2010-04-16 10:25:33