нужно найти цену на каждый товар в каждом месте на текущую дату. Поскольку существует много цен на одну и ту же комбинацию item/location, используйте значения sales_retail, наиболее близкие к текущей дате, то есть последняя action_date, которая <= текущая дата).
Если я правильно понял, то вот, как вариант...
SELECT *, DiffDays (ACTION_DATE) AS D
FROM `table`
WHERE ACTION_DATE <= CURRENT_DATE
GROUP BY ITEM, LOCATION
ORDER BY D
/*LIMIT 10*/ /* Лимит кол-ва "ближайших" дат...если нужно, то раскомментировать...*/
P.S.: Возможно придётся ещё изменить запрос...ибо условие не совсем понятное...тут нужно уточнить...из каждой группы ITEM/LOCATION по одной ближайшей дате?
Тогда мой запрос не совсем подойдёт...