Я выбираю дочерние расходы в долларах США на конкретную дату. Но мне нужно конвертировать его в выигранную валюту на эту дату. Стоимость валюты меняется в любое время в зависимости от доллара США. История валют находится в таблице V_CURRENCY . Мне нужно умножить доллар на эту сумму и показать в выигрыше. Мой запрос ниже и дает ошибку. Ошибка [22008] [1861] ORA-01861 . Несоответствие строк.
with cte as (
select t.filial_code,
t.modified_by as emp_code,
sum(t.sum_oper) as summa,
to_char(t.oper_date, 'YYYY-MM-DD') as operation_date
from OPERS t,
DEP_OPERS d
WHERE
And t.modified_by = 213
And t.filial_code = '00116'
And d.currency_code = 840
And t.oper_date >= to_date('07.01.2020', 'DD.MM.YYYY')
And t.oper_date < to_date('11.01.2020', 'DD.MM.YYYY')
group by to_char(t.oper_date, 'YYYY-MM-DD'), t.filial_code, t.modified_by
) select cte.filial_code,cte.emp_code,cte.summa * (select equival from V_CURRENCY
where date_activ = (select max(date_activ)
from V_CURRENCY
where date_activ <= cte.operation_date) and code = 840) as summa,cte.operation_date from cte;
Из cte я беру следующий результат:
FILIAL_CODE | EMP_CODE | SUMMA | OPERATION_DATE
-----------------------------------------------
00116 | 213 | 40000 | 2020-01-14
00116 | 213 | 6000 | 2020-01-10
00116 | 213 | 2800 | 2020-01-06
Моя V_CURRENCY таблица похожа на приведенную ниже:
CODE | DATE_ACTIV | EQUIVAL|
--------------------------------
840 | 2020-01-13 00:00:00 | 576.97
840 | 2020-01-07 00:00:00 | 2008.54
840 | 2020-01-06 00:00:00 | 1941.91
840 | 2019-12-22 00:00:00 | 301.62
190 | 2020-01-13 00:00:00 | 1200.97
270 | 2020-01-13 00:00:00 | 2300.21
800 | 2019-12-22 00:00:00 | 100.62
Мне нужно умножить эквивалент из таблицы V_CURRENCY в дате 2020-01-13 00: 00: 00 на мой результат CUM SUMMA для OPERATION_DATE 2020-01-14 , означает, что 4000 * 576.97, причина OPERATION_DATE является наиболее близкой к дате изменения валюты. Но если для даты 2020-01-06 существует DATE_ACTIV , то 2800 * 1941.91. Мне нужно только значение валюты, чей код 840.
Мой последний результат должен выглядеть следующим образом:
FILIAL_CODE | EMP_CODE | SUMMA | OPERATION_DATE
-----------------------------------------------
00116 | 213 | 40000 * 576.97 | 2020-01-14
00116 | 213 | 6000 * 2008.54 | 2020-01-10
00116 | 213 | 2800 * 1941.91 | 2020-01-06
Любой ответ приветствуется. Заранее спасибо.