如何将数据表转换为类似ReportingService的矩阵?

题:

我有从数据库检索的数据,如下所示:

在此处输入图像描述

现在我需要将其转换为以下格式,以便能够绘制饼图。 在此处输入图像描述

在ReportingService中,有一个Matrix控件来实现这一点,但是为了将它渲染为PieChart图像,我可以使用什么来在普通的C#中实现相同的function呢?

请注意,建筑物的数量以及使用类型是可变的,并且未提前知道。

编辑:
感谢Magnus和Google:

SELECT * FROM ( SELECT STE_Designation AS RPT_Site ,BDG_Designation AS RPT_Building ,UG_Code AS RPT_Usage_Code ,UG_Caption AS RPT_Usage ,SUM(MP_RMArea_Area) AS RPT_Area FROM V_RPT_RoomDetail WHERE (RM_MDT_ID = 1) GROUP BY STE_Designation ,BDG_Designation ,UG_Code ,UG_Caption --ORDER BY STE_Designation, BDG_Designation, UG_Code, UG_Caption ) AS SourceTable PIVOT ( SUM(RPT_Area) FOR RPT_Building IN ([Building1], [Building2], [BuildingN]) ) AS PivotTable ORDER BY RPT_Site, RPT_Usage_Code 

需要通过select distinct在代码中生成pivot列的位置。

您应该看一下SQL Pivot运算符http://msdn.microsoft.com/en-us/library/ms177410.aspx