I am not a SQL guy, I have used it in the past and rarely have an issue that cant be solved by google... however this time I need to ask the Community.
SELECT A.ProdNo ,Price ,A.TransactionDate,PurchasedBy
FROM #Transactions
JOIN
(
SELECT ProdNo,MAX(TransactionDate) TransactionDate
FROM #Transactions
GROUP BY ProdNo
)A ON A.TransactionDate = #Trans.TransactionDate