|
Execute the following
Microsoft SQL Server T-SQL script in SSMS Query Editor to demonstrate the use of GROUP BY on a CTE to create summary report.
-- SQL Server CTE - T-SQL CTE - SQL Server Common Table Expression
-- SQL Server GROUP BY with CTE
USE AdventureWorks2008;
WITH cteSales AS
(
SELECT
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]
,soh.[SalesPersonID]
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]
)
SELECT SalesTerritory, FiscalYear, FullName,
Total = '$'+convert(varchar,SUM([SubTotal]),1)
FROM cteSales c
GROUP BY SalesTerritory, FiscalYear, FullName
ORDER BY SalesTerritory, FiscalYear, FullName
GO
Partial results:
| SalesTerritory |
FiscalYear |
FullName |
Total |
| Australia |
2004 |
Lynn N Tsoflias |
$1,758,385.93 |
| Canada |
2002 |
Garrett R Vargas |
$1,135,639.26 |
| Canada |
2002 |
José Edvaldo Saraiva |
$2,532,500.91 |
| Canada |
2003 |
Garrett R Vargas |
$1,480,136.01 |
| Canada |
2003 |
José Edvaldo Saraiva |
$1,488,793.34 |
|