Ну для начала стоило бы вырвать руки аффтору именно такой структуры данных...
Потом погрустить и извращаться-извращаться с кучей оговорок...
Например можно взять и получить цену позже искомой даты как:
select top 1
цена
from Цены
where дата вступления цены в силу<=искомая дата and товар=товар
order by дата вступления цены в силу desc
как минимум приведенный выше кусок напрашивается как вложенный запрос или как кусок cte ну или как фрагмент join