SQL Query以获取Matrix报告

时间:2009-08-06 01:57:21

标签: sql sql-server-2005 tsql reporting-services pivot

我的“FeedbackSummary”表结构是

GivenBy varchar(50)
GivenTo varchar(50)
Points  decimal(15, 2)

样本数据

Alice   Janet   4.50
Alice   Bruce   3.50
Bruce   Alice   2.87
Bruce   Janet   4.75
Janet   Alice   5.45
Janet   Bruce   3.78

我想要实现的目标

GivenBy_GivenTo Alice   Bruce   Janet
Alice           NULL    3.50    4.50    
Bruce           2.87    NULL    4.75
Janet           5.45    3.78    NULL

平台:SQL Server 2005& 2008

如何使用Pivot或任何其他技术完成此操作。 这可以通过SQL Reporting Services轻松实现吗?

提前致谢。

2 个答案:

答案 0 :(得分:1)

最好是使用SSRS。在那里放一个矩阵,行上有一列,列上有一列。您可以在查询中进行透视(PIVOT选项),但这不允许报告的灵活性。

罗布

答案 1 :(得分:1)

  SELECT t.givenby,
         SUM(CASE WHEN t.givento = 'Alice' THEN t.points ELSE NULL END) 'Alice',
         SUM(CASE WHEN t.givento = 'Bruce' THEN t.points ELSE NULL END) 'Bruce',
         SUM(CASE WHEN t.givento = 'Janet' THEN t.points ELSE NULL END) 'Janet'
    FROM TABLE t
GROUP BY t.givenby