Utilice la fecha más reciente para las fechas faltantes al unir tablas
Tengo 2 tablas:
1.tran_test : (id, amount, currency(Currency_Name), date_1)
2.cur_test: (id, currency, date_2, price(amount In USD))
¿Cómo obtener la suma total de ventas para cada día teniendo en cuenta que faltan algunas de las fechas en la tabla de prueba actual, por lo que debe usar las últimas fechas disponibles para calcular el resultado?
Escribí una consulta que calcula la suma, pero excluye los días en que faltan las tasas.
¿Cómo calcular los importes de los días que faltan?
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;
No necesito solo generar fechas. Necesito calcular cantidades usando los datos disponibles en las tablas. Si faltan algunas de las fechas, necesito tomar la última fecha disponible cuando las tasas de cambio están disponibles. Por ejemplo: la tabla tran.test tiene una transacción para el 28 de septiembre, pero no se proporcionan las tasas de cambio para este día, por lo que debo tomar la última tasa disponible
Muestra de datos similares
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),
La salida debe ser igual a la fecha: cantidad total para la fecha 2018-02-21 - 2128
El código completo está aquí -https: //www.db-fiddle.com/f/v4SHW9XgtgyehbhanQFRx5/ Los datos reales son un poco más complicados e incluyen fechas en formato UNIX