Listing 2: APPLY Solution Using AND Logic SELECT C.CustomerID AS CustID, CONVERT(CHAR(8), C.OrderDate, 112) AS OrderDate, C.SalesOrderID AS OrderID, C.TotalDue, DATEDIFF(day, P.OrderDate, C.OrderDate) AS Elapsed, C.TotalDue - P.TotalDue AS Diff, (C.TotalDue - P.TotalDue) / P.TotalDue * 100 AS Pct FROM Sales.SalesOrderHeader AS C OUTER APPLY (SELECT TOP (1) PA.OrderDate, PA.TotalDue FROM Sales.SalesOrderHeader AS PA WHERE PA.CustomerID = C.CustomerID AND (PA.OrderDate <= C.OrderDate AND (PA.OrderDate < C.OrderDate OR PA.SalesOrderID < C.SalesOrderID)) ORDER BY PA.OrderDate DESC, PA.SalesOrderID DESC) AS P;