Czy możesz spróbować użyć poniższego zapytania?
SELECT a.Store_type, a.Date, a.Article, b.Price
FROM TRANSACTIONS a
LEFT JOIN PRICES b ON a.Store_type = b.Store_type
AND a.Article = b.Article
AND b.Date = (SELECT MAX (c.Date)
FROM PRICES c
WHERE a.Store_type = c.Store_Type
AND a.Article = c.Article
AND c.Date <= a.Date)
Jednak nadal ma jedno podzapytanie, używane do pobrania maksymalnej daty.