Как создать ежемесячные ячейки на основе диапазонов дат и объединить данные в другую таблицу
Я пытаюсь понять, как это сделать в MySQL
У меня есть два стола:
1) Сервисный Стол:
Serv_ID Prov_ID Serv_Date
11812 CT18T005 2016-01-21
11819 CT18T005 2016-02-23
11823 CT18T006 2016-01-25
11832 CT18T010 2016-01-26
11838 CT18T010 2016-02-23
11842 CT18T007 2016-01-25
11848 CT18T007 2016-02-25
12886 CT18T006 2016-02-26
12906 CT18T005 2016-04-21
12907 CT18T005 2016-04-28
12916 CT18T010 2016-03-22
12918 CT18T010 2016-03-29
12934 CT18T007 2016-04-29
13475 CT18T010 2016-06-07
2) Таблица Поставщиков:
Prov_ID Prov_Start Prov_End
CT18T001 2016-01-01 2016-06-30
CT18T005 2016-01-01 2016-06-30
CT18T006 2016-01-01 2016-05-13
CT18T007 2016-01-01 2016-06-30
CT18T010 2016-01-15 2016-06-30
Мне нужно вычислить средние единицы обслуживания (ASU), предоставляемые на одного поставщика в месяц в течение отчетного периода(01/01/2016 - 06/30/2016), с учетом количества дней, в течение которых поставщик (Ы) был активен в течение месяца. Таким образом, за весь февраль было задействовано 4 провайдера. Провайдер 006 был активен в период с 01/01/2016 по 13.05.2016 и, таким образом, должен быть засчитан за весь месяц январь - апрель и 13 дней в мае.
Месяц ASU / провайдер
4 января/(4+15/30) предполагая 30 дней в месяце
4/5 февраля
...
...
Июнь
Конечным результатом будет число (среднее значение ASU / Provider в месяц): Sum (ASU/Provider) / 6
Я пытаюсь создать таблицу для активных поставщиков по месяцам из таблицы поставщиков, и это та часть, где я не знаю, как действовать дальше.
Любая помощь будет оценена по достоинству. Я здесь впервые. Если я написал не в том разделе, пожалуйста, дайте мне знать.
Спасибо.
Что я уже пробовал:
Для первой части я рассчитал количество услуг по месяцам, используя
Выберите месяц (ServDate), количество (Serv_ID) в качестве ASU
От Серва
Группа по месяцам(ServDate);
Я пытаюсь создать таблицу для активных поставщиков по месяцам из таблицы поставщиков, и это та часть, где я застрял.
RossMW
Не могли бы вы, пожалуйста, представить ожидаемый результат. Неясно, как вы ожидаете, что информация о поставщике будет отображаться, если он не активен в течение этого месяца.
В противном случае, похоже, вам просто нужно объединить две таблицы вместе и отфильтровать по месяцам (ServDate) и месяцам (ProviderActiveDate)
Member 12673945
Конечным результатом будет просто число (единицы обслуживания/месяц / поставщик). Информация о поставщике не отображается,хотя она учитывается при вычислении. В приведенном выше наборе данных CT18T001 должен учитываться во всех 6 месяцах, даже если он не предоставлял никаких услуг (но имел право и мог бы это сделать). Спасибо.