SQLUSA
Free Trial Save on Combos
SQL Server 2008 Best Practices
SQL Server 2005 Best Practices
SQL Server 2000 Best Practices
How to calculate yearly sales revenue of mountain bikes?

Execute the following script in Query Editor to obtain the yearly and monthly sales revenue figures for the AdventureWorks Cycles, a mountain, road & touring bike manufacturer:

-- How to calculate revenue

-- How to calculate gross margin

-- SQL calculate revenue

SELECT   [Year] = YEAR(OrderDate),

         SoldQty = left(convert(VARCHAR,convert(MONEY, SUM(OrderQty)), 1), -3 +

                  len (convert(VARCHAR,convert(MONEY, SUM(OrderQty)), 1))),

         SalesRevenue = '$' + convert(VARCHAR,convert(MONEY,

                  SUM(OrderQty * UnitPrice * (1.0 - UnitPriceDiscount))), 1),

         GrossMargin = '$' + convert(VARCHAR,convert(MONEY,

                  SUM(OrderQty * (UnitPrice * (1.0 - UnitPriceDiscount))

                  - StandardCost)),  1)

FROM     Sales.SalesOrderHeader AS H

         INNER JOIN Sales.SalesOrderDetail AS D

           ON D.SalesOrderID = H.SalesOrderID

         INNER JOIN Production.Product P

           ON P.ProductID = D.ProductID

GROUP BY YEAR(OrderDate)

ORDER BY [Year];

GO

 

/* Results

 

Year  SoldQty     SalesRevenue      GrossMargin

2001  11848       $11,331,808.96    $6,352,004.60

2002  60918       $30,674,773.17    $18,241,066.63

2003  124699      $42,011,037.16    $25,499,399.18

2004  77449       $25,828,752.10    $14,419,422.30

*/

------------

USE AdventureWorks;

GO

 

-- How to calculate sales revenue by quarter

SELECT [Quarter] = CONVERT(VARCHAR,YEAR(OrderDate)) + 'Q' +

                  CONVERT(VARCHAR,(MONTH(OrderDate) - 1) / 3 + 1),

       SoldQty = SUM(OrderQty),

                  SalesRevenue = '$' + CONVERT(VARCHAR,CONVERT(MONEY,

                  SUM(OrderQty * UnitPrice * (1.0 - UnitPriceDiscount))), 1)

FROM     Sales.SalesOrderHeader AS H

         JOIN Sales.SalesOrderDetail AS D

           ON D.SalesOrderID = H.SalesOrderID

GROUP BY CONVERT(VARCHAR,YEAR(OrderDate)) + 'Q' +

             CONVERT(VARCHAR,(MONTH(OrderDate) - 1) / 3 + 1)

ORDER BY [Quarter];

GO

/* Results

 

Quarter     SoldQty     SalesRevenue

2001Q3      4833        $4,647,156.85

2001Q4      7015        $6,684,652.11

2002Q1      5184        $5,860,884.49

2002Q2      7064        $6,167,832.56

2002Q3      28146       $10,277,073.05

2002Q4      20524       $8,368,983.08

2003Q1      13095       $6,679,873.81

2003Q2      20416       $8,357,874.88

2003Q3      48955       $13,681,907.05

2003Q4      42233       $13,291,381.43

2004Q1      31540       $11,398,376.28

2004Q2      43700       $14,379,535.19

2004Q3      2209        $50,840.63

*/

------------

-- How to calculate revenue

-- Monthly revenue calculation

SELECT

      [Year] = YEAR(OrderDate),

      [Month] = Month(OrderDate),

      SoldQty = SUM(OrderQty),

      SalesRevenue = '$'+convert(varchar, convert(money,

                   SUM(OrderQty * UnitPrice * (1.0-UnitPriceDiscount))

                   ),1)

FROM Sales.SalesOrderHeader AS H

JOIN Sales.SalesOrderDetail AS D

      ON D.SalesOrderID = H.SalesOrderID

GROUP BY YEAR(OrderDate), Month(OrderDate)

ORDER BY [Year], [Month];

GO

/* Partial results

 

Year  Month SoldQty     SalesRevenue

2004  1     9227        $3,009,197.42

2004  2     10999       $4,167,855.43

2004  3     11314       $4,221,323.43

2004  4     12235       $3,819,776.73

2004  5     15656       $5,194,121.52

2004  6     15805       $5,364,840.18

2004  7     2209        $50,840.63

*/

 

The World Leader in SQL Server Training
 
SQLUSA.com Home Page