SQL-запрос для получения отчетов Matrix - PullRequest
1 голос
/ 06 августа 2009

Моя структура таблицы "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?

Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 06 августа 2009
  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
1 голос
/ 06 августа 2009

Лучше всего использовать SSRS. Поместите туда матрицу с одним столбцом в строках и одним в столбцах. Вы можете поворачиваться в запросе (опция PIVOT), но это не обеспечивает гибкости в отчетности.

Rob

...