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.
Pls Try this
--If one ProdNo has two same max TransactionDate, will return both two rows
select ProdNo,Price,TransactionDate from Transactions t
where not exists (select 1 from Transactions where ProdNo=t.ProdNo and TransactionDate>t.TransactionDate)