Microsoft SQL Server 2005
Advanced SQL Best Practices

How to construct sales staff matrix report?

Execute the following script in Query Editor to build a sales matrix report by sales staff, year and month person.

USE AdventureWorks;

 

SELECT [Year]=YEAR(OrderDate)

,SalesStaff=LastName+', '+ FirstName

,SUM(CASE WHEN MONTH(OrderDate) = 1 THEN TotalDue END) AS 'JAN'

,SUM(CASE WHEN MONTH(OrderDate) = 2 THEN TotalDue END) AS 'FEB'

,SUM(CASE WHEN MONTH(OrderDate) = 3 THEN TotalDue END) AS 'MAR'

,SUM(CASE WHEN MONTH(OrderDate) = 4 THEN TotalDue END) AS 'APR'

,SUM(CASE WHEN MONTH(OrderDate) = 5 THEN TotalDue END) AS 'MAY'

,SUM(CASE WHEN MONTH(OrderDate) = 6 THEN TotalDue END) AS 'JUN'

,SUM(CASE WHEN MONTH(OrderDate) = 7 THEN TotalDue END) AS 'JUL'

,SUM(CASE WHEN MONTH(OrderDate) = 8 THEN TotalDue END) AS 'AUG'

,SUM(CASE WHEN MONTH(OrderDate) = 9 THEN TotalDue END) AS 'SEP'

,SUM(CASE WHEN MONTH(OrderDate) = 10 THEN TotalDue END) AS 'OCT'

,SUM(CASE WHEN MONTH(OrderDate) = 11 THEN TotalDue END) AS 'NOV'

,SUM(CASE WHEN MONTH(OrderDate) = 12 THEN TotalDue END) AS 'DEC'

FROM Sales.SalesOrderHeader soh

INNER JOIN HumanResources.Employee e

ON soh.SalesPersonID = e.EmployeeID

INNER JOIN Person.Contact c

ON e.ContactID = c.ContactID

GROUP BY YEAR(OrderDate), LastName+', '+ FirstName

ORDER BY YEAR(OrderDate), LastName+', '+ FirstName

 

The Best SQL Server 2005 Training in the World
 
 
SQLUSA.com Home Page