У меня есть 2 таблицы: Транзакции (а) и Цены (б). Я хочу получить цену из таблицы b, которая действительна на дату транзакции.
Таблица а содержит историю транзакций товаров: Store_type, Date, Article, ...
Таблица b содержит историю цен на товары: Store_type, Date, Article, price.
В настоящее время у меня есть это:
Select
a.Store_type,
a.Date
a.Article,
(select b.price
from PRICES b
where b.Store_type = a.Store_type
and b.Article = a.Article
and b.Date = (select max(c.date)
from PRICES c
where c.Store_type = a.Store_type
and c.Article = a.Article
and c.date <= a.date)) AS ART_PRICE
from TRANSACTIONS a
Это работает просто отлично, но кажется, что это занимает очень много времени из-за двойного подзапроса. Можно ли сделать то же самое с помощью LEFT JOIN?
Date
, потому что это слово уже используется в sql. - person Hearner   schedule 28.08.2015show create table xxx
для каждой таблицы. Упс, это показало бы настоящие имена столбцов, извините. - person Drew   schedule 28.08.2015