Исключение пересечений дат + расчет часов

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Ответить
kuznetsovSergey
Сообщения: 163
Зарегистрирован: 05 мар 2009, 11:27

Всем добрый день !

Прошу помочь, в вопросе запроса в Access.
существует 4 поля в таблице
- номер машины
- причина поломки
- дата начала проблемы
- дата решения проблемы

и задачка вот в чем, машина может быть на ремонте, по некоторым причинам. Машина может быть сломана 2 часа всего, а может стоять сломанной 2 месяца. Как расчитать общее кол-во её простоя в каждом месяце???

ОПИШУ ПРОБЛЕМУ, что меня смутило, вот две строчки примера:
машина1 - причина1 - c 01.01.2012 0:00:00 - по 02.02.2012 10:00:00
машина1 - причина2 - с 19.01.2012 20:00:00 - по 28.01.2012 12:00:00

как Вы видите, по разным причинам, машина чинилась с пересечением времени. Тоесть теперь как-то нужно исключить все пересечения одной машины, по этим диапазонам. Причем такие пересечения сталкиваются сплошь и рядом ... И еще в добавок посчитать часы простоя каждой машины в каждом месяце. На выходе примерно выглядеть должно так:

Машина1 - январь - 696 часов
Машина1 - февраль - 34 часа

Заранее спасибо !!!
kuznetsovSergey
Сообщения: 163
Зарегистрирован: 05 мар 2009, 11:27

Эх, решил проблему путем написания макроса VBA.
Прошелся по всем записям в таблице, разбил каждый период по часам, потом запросом удалил одинаковые записи, и остались только уникальные комбинации, и далее сделал группировку по каждому месяцу и машине, получив сумму по кол-ву часов.
Ответить