У меня есть запрос, который выдает ошибку уровня.Это таблица с обменными курсами в двух направлениях
currency_from | currency_to | convertion rate
ARS | USD | 0.20
USD | ARS | 20.00
Я хочу получить одну из игр, например, ту, которая имеет наибольшее значение
currency_from | currency_to | convertion rate
USD | ARS | 20.00
ВВ таблице, очевидно, существует множество комбинаций разных валют, и следующий запрос решит проблему, но он не достигает второго уровня
select *
from gl.gl_daily_rates gdr
where gdr.conversion_date = to_date('20180301','YYYYMMDD')
and gdr.conversion_rate = (select max(total.conversion_rate)
from (select gdr2.conversion_rate
from gl.gl_daily_rates gdr2
where gdr2.conversion_date = gdr.conversion_date
and gdr2.from_currency = gdr.from_currency
and gdr2.to_currency = gdr.to_currency
union all
select gdr3.conversion_rate
from gl.gl_daily_rates gdr3
where gdr3.conversion_date = gdr.conversion_date
and gdr3.from_currency = gdr.to_currency
and gdr3.to_currency = gdr.from_currency
) total);
Кто-нибудь задумывается, как его можно решить?Спасибо.