Присоедините start_date и _end_date к другой таблице и суммируйте
Таблица 1 Столбцы таблицы:
cancel_date product total_cancels
6/1/2017 a 100
6/1/2017 b 40
6/2/2017 b 10
6/3/2017 b 20
.
.
.
6/1/2018 a 40
6/1/2018 b 10
Таблица 2
realdate cancel_start_date cancel_end_date
6/1/2017 6/1/2016 4/1/2017
6/2/2017 6/2/2016 4/2/2017
6/3/2017 6/3/2016 4/3/2017
.
.
.
поэтому table1.cancel_date между t2.cancel_start_date и t2.cancel_end_date, как я могу объединить эти две таблицы?
что я хочу получить
product realdate total_cancels cancel_date between start_date and end_date
a 6/1/2017 100000 6/1/2016-4/30/2017
b 6/1/2017 8000 6/1/2016-4/30/2017
a 6/2/2017 100000 6/2/2016-5/1/2017
b 6/2/2017 8000 6/2/2016-5/1/2017
...
1 ответ
То, что вы хотите сделать, это присоединить table_2 к table_1, используя условие on так, что table_1. Параметр cancel_date находится между table_2.cancel_start_date и table_2.cancel_end_date. Но сначала нам нужно использовать функцию DATE_PARSE, чтобы сопоставить даты. Наконец, просто подведите итоги.
SELECT
table_1.product,
table_2.realdate,
SUM(total_cancels) AS total_cancels,
CONCAT(table_2.cancel_start_date, '-', table_2.cancel_end_date) as start_to_end
FROM table_1
JOIN table_2
WHERE DATE_PARSE(table_1. cancel_date, '%m/%d/%Y')
BETWEEN DATE_PARSE(table_2.cancel_start_date, '%m/%d/%Y')
AND DATE_PARSE(table_2.cancel_end_date, '%m/%d/%Y')
GROUP BY 1, 2, 4