Select Product_ID, Price
From(
Select Product.Product_ID, Product_Price.Price, Row_Number() Over(Partition By Product_Price.Product_ID Order By Product_Price.Product_ID, Promotion.ApprovedDate DESC )as RowPrice
From Product
Inner Join Product_Price on Product.Product_ID = Product_Price .Product_ID
Inner Join Promotion On Promotion.Promotion_ID = Product_Price.Promotion_ID
Where GetDate() Between Isnull(Promotion .dateStart,GetDate()) and Isnull(Promotion.dateEnd,GetDate())
)getPrice
Where RowPrice = 1