Затем вы можете присоединиться к этому с остальной частью вашего запроса.

я есть 2 таблицы:

1.tran_test : (id, amount, currency(Currency_Name), date_1)
2.cur_test: (id, currency, date_2, price(amount In USD))

Как получить общую сумму продаж за каждый день, учитывая, что некоторые даты в таблице cur.test отсутствуют, поэтому вам нужно использовать последние доступные даты для расчета результата?

Я написал запрос, который вычисляет сумму, но исключает дни, когда ставки отсутствуют.

Как рассчитать суммы за пропущенные дни?

SELECT date_1, SUM(amount*c.price) AS sum_by_day
 FROM tran_test AS t
 INNER JOIN cur_test AS c
 ON t.currency = c.currency AND date_1 = date_2
 GROUP BY date_1;

Мне не нужно просто генерировать даты. Мне нужно рассчитать суммы, используя данные, доступные в таблицах. Если некоторые даты отсутствуют, мне нужно взять последнюю доступную дату, когда доступны курсы валют. Например, в таблице tran.test есть транзакция на 28 сентября, но курсы валют на этот день не указаны, поэтому мне нужно взять последний доступный курс

Образец похожих данных

INSERT INTO tran_test (amount, currency, date_1) VALUES 
(1000,'RUB','2018-09-01'),
(15,'USD','2018-09-01'),
(10,'EUR','2018-09-01'),

INSERT INTO cur_test (name,date_2, price) VALUES
('RUB','2018-01-09',0.02),
('USD','2018-01-09',1),

Вывод должен быть как дата - общая сумма за дату 2018-02-21 - 2128

Полный код здесь -https://www.db-fiddle.com/f/v4SHW9XgtgyehbhanQFRx5/2 Фактические данные немного сложнее и включают даты в формате UNIX

Ответы на вопрос(2)

Ваш ответ на вопрос