Open iriyawin opened 6 years ago
declare @d date, @v int select @d = '2010.01.03', @v = 1
select top 1 rate from rates a where (a.date_rate = ( select max(date_rate) as maxdate from rates b where (b.date_rate <= @d) and (b.curr_id = @v) ))
declare @d date, @v int select @d = '2010.01.10', @v = 2
select top 1 rate from rates a where (a.date_rate = ( select max(date_rate) as maxdate from rates b where (b.date_rate <= @d) and (b.curr_id = @v) ))
Имеется таблица курсов валют следующей структуры: create table rates(curr_id number, -- ид валюты date_rate DATE, -- дата курса rate NUMBER -- значение курса ) Курс валюты устанавливается не на каждую календарную дату. Уникальный ключ: curr_id + date_rate. Напишите запрос, который покажет действующее значение курса заданной валюты на любую заданную календарную дату. Пример данных: CURR_ID DATE_RATE RATE 1 01.01.2010 30 2 01.01.2010 40 1 02.01.2010 32 1 05.01.2010 33 2 10.01.2010 41 2 15.01.2010 42
Требуемый результат: Для валюты 1 на 03.01.2010 получить курс 32 Для валюты 2 на 10.01.2010 получить курс 41