Okay, so you have a price history (ItemID, PurchaseDate, UnitPrice) and then you have a new order (OrderID, OrderDate, ... ItemID, Quantity, etc)
So you'd do something like
SELECT

rderID,

rderDate, o.ItemID, o.Quantity, lp.PurchaseDate, lp.UnitPrice
FROM Orders o
CROSS APPLY (SELECT TOP 1 p.PurchaseDate, p.UnitPrice
FROM Purchases p
WHERE p.PurchaseDate <

rderDate
AND p.ProductID = o.ItemID
ORDER BY p.PurchaseDate DESC) lp
The easiest way to understand the query is sort of from the bottom up. The Orders part is obvious (I hope!). What makes the CROSS APPLY work like a correlated subquery is the WHERE clause that (1) joins to the Orders table (p.ProductID = o.ItemID), and then limits it to the most recent purchase prior to the Order Date (WHERE p.PurchaseDate <

rderDate). Ordering the CROSS APPLY result by OrderDate DESC means the latest related record is returned, and then you just grab the PurchaseDate and UnitPrice. If there might not be related Purchases, then you'd use OUTER APPLY instead of CROSS APPLY (as OUTER APPLY is like an outer join to another query).
Hope that clarifies things. If not, tell me where I went off the rails.