Views [Sales].[vSalesPersonSalesByFiscalYears]
Uses PIVOT to return aggregated sales information for each sales representative.
PropertyValue
CollationSQL_Latin1_General_CP1_CI_AS
ANSI Nulls OnTrue
Quoted Identifier OnTrue
Created13:14:55 14 marca 2012
Last Modified13:14:55 14 marca 2012
NameData TypeMax Length (Bytes)
SalesPersonIDint4
FullNamenvarchar(152)304
JobTitlenvarchar(50)100
SalesTerritory[dbo].[Name]100
2002money8
2003money8
2004money8

CREATE VIEW [Sales].[vSalesPersonSalesByFiscalYears]
AS
SELECT
   pvt.[SalesPersonID]
   ,pvt.[FullName]
   ,pvt.[JobTitle]
   ,pvt.[SalesTerritory]
   ,pvt.[2002]
   ,pvt.[2003]
   ,pvt.[2004]
FROM (SELECT
       soh.[SalesPersonID]
       ,p.[FirstName] + ' ' + COALESCE(p.[MiddleName], '') + ' ' + p.[LastName] AS [FullName]
       ,e.[JobTitle]
       ,st.[Name] AS [SalesTerritory]
       ,soh.[SubTotal]
       ,YEAR(DATEADD(m, 6, soh.[OrderDate])) AS [FiscalYear]
   FROM [Sales].[SalesPerson] sp
       INNER JOIN [Sales].[SalesOrderHeader] soh
       ON sp.[BusinessEntityID] = soh.[SalesPersonID]
       INNER JOIN [Sales].[SalesTerritory] st
       ON sp.[TerritoryID] = st.[TerritoryID]
       INNER JOIN [HumanResources].[Employee] e
       ON soh.[SalesPersonID] = e.[BusinessEntityID]
       INNER JOIN [Person].[Person] p
       ON p.[BusinessEntityID] = sp.[BusinessEntityID]
    ) AS soh
PIVOT
(
   SUM([SubTotal])
   FOR [FiscalYear]
   IN ([2002], [2003], [2004])
) AS pvt;
GO
EXEC sp_addextendedproperty N'MS_Description', N'Uses PIVOT to return aggregated sales information for each sales representative.', 'SCHEMA', N'Sales', 'VIEW', N'vSalesPersonSalesByFiscalYears', NULL, NULL
GO