USE AdventureWorks;
DECLARE @CustID AS int;
SET @CustID = 3;
WITH YearlyCustOrdersCTE(OrderYear, TotalValue)
AS
( SELECT YEAR(OrderDate), SUM(OrderQty*UnitPrice)
FROM Sales.SalesOrderHeader AS H
JOIN Sales.SalesOrderDetail AS D
ON H.SalesOrderID = D.SalesOrderID
WHERE CustomerID = @CustID
GROUP BY YEAR(OrderDate) )
SELECT Cur.*, Prev.TotalValue AS PrevTotalValue,
(Cur.TotalValue/Prev.TotalValue - 1) * 100 AS Diff
FROM YearlyCustOrdersCTE AS Cur
LEFT OUTER JOIN YearlyCustOrdersCTE AS Prev
ON Cur.OrderYear = Prev.OrderYear + 1;