| Owner: | Sales |
| Schema bound: | |
| Encrypted: | |
| Creation Date: | 04/26/2006 |
| Modification Date: | 04/26/2006 |
| Description: | Uses PIVOT to return aggregated sales information for each sales representative. |
| Name | Data Type | Length | NULL | IsGUID | Description | |
| SalesPersonID | int | 4 | ||||
| FullName | nvarchar | 152 | ||||
| Title | nvarchar | 50 | ||||
| SalesTerritory | Name | 100 | ||||
| 2002 | money | 8 | ||||
| 2003 | money | 8 | ||||
| 2004 | money | 8 |
Objects that [Sales].[vSalesPersonSalesByFiscalYears] depends on
| Object Name | Owner | Object Type | Dep Level | |
| AccountNumber | dbo | User Defined type | 1 | |
| Flag | dbo | User Defined type | 1 | |
| Name | dbo | User Defined type | 1 | |
| NameStyle | dbo | User Defined type | 1 | |
| OrderNumber | dbo | User Defined type | 1 | |
| Phone | dbo | User Defined type | 1 | |
| ufnLeadingZeros | dbo | Function | 2 | |
| Contact | Person | Table | 2 | |
| CountryRegion | Person | Table | 2 | |
| CreditCard | Sales | Table | 2 | |
| Currency | Sales | Table | 2 | |
| SalesTerritory | Sales | Table | 2 | |
| ShipMethod | Purchasing | Table | 2 | |
| CurrencyRate | Sales | Table | 3 | |
| Customer | Sales | Table | 3 | |
| Employee | HumanResources | Table | 3 | |
| StateProvince | Person | Table | 3 | |
| Address | Person | Table | 4 | |
| SalesPerson | Sales | Table | 4 | |
| SalesOrderHeader | Sales | Table | 5 |
CREATE VIEW [Sales].[vSalesPersonSalesByFiscalYears]
AS
SELECT
pvt.[SalesPersonID]
,pvt.[FullName]
,pvt.[Title]
,pvt.[SalesTerritory]
,pvt.[2002]
,pvt.[2003]
,pvt.[2004]
FROM (SELECT
soh.[SalesPersonID]
,c.[FirstName] + ' ' + COALESCE(c.[MiddleName], '') + ' ' + c.[LastName] AS [FullName]
,e.[Title]
,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.[SalesPersonID] = soh.[SalesPersonID]
INNER JOIN [Sales].[SalesTerritory] st
ON sp.[TerritoryID] = st.[TerritoryID]
INNER JOIN [HumanResources].[Employee] e
ON soh.[SalesPersonID] = e.[EmployeeID]
INNER JOIN [Person].[Contact] c
ON e.[ContactID] = c.ContactID
) AS soh
PIVOT
(
SUM([SubTotal])
FOR [FiscalYear]
IN ([2002], [2003], [2004])
) AS pvt;
See Also
List of views