Member 12673945 Ответов: 0

Как создать ежемесячные ячейки на основе диапазонов дат и объединить данные в другую таблицу


Я пытаюсь понять, как это сделать в 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 месяцах, даже если он не предоставлял никаких услуг (но имел право и мог бы это сделать). Спасибо.

0 Ответов