Crystal: объединение двух событий одновременно
У меня есть отчет, который показывает события для рефрижераторных контейнеров. Есть только 3 вида событий: REEFER_SETTINGS RECORDED, который записывает температуру, и UNIT_POWER_CONNECT/DISCONNECT, который не делает. Когда контейнер подключен / отключен от питания в одно и то же время, происходят два отдельных события: подключение (или d/c) и считывание температуры:
Клиент хотел бы удалить эти избыточности и вместо этих двух событий в один момент иметь одно (подключение или отключение) И записанную температуру:
UNIT_POWER_CONNECT 21/12/2013 10:11 -15
REEFER_SETTINGS_RECORDED 21/12/2013 12:30 -17
UNIT_POWER_DISCONNECT 21/12/2013 18:30 -16
Я пытался создать группировку по времени записи (по минутам), но, хотя на самом деле он удалял избыточность, событие было выбрано полуслучайно - либо выбор температуры, либо подключение / постоянный ток - и в случае последнего температура еще не записывалась. Есть идеи? Я бы предпочел избегать объединения в SQL-запросе (что, вероятно, могло бы решить эту проблему), поскольку в нем уже есть объединение, и это усложнило бы ситуацию. Я пытался использовать функции NEXT и PREVIOUS Crystal, но без особой удачи.
РЕДАКТИРОВАТЬ: примечание о части SQL: для этой части запроса есть три таблицы: Reefer_records, в которых хранится температура, service_events, в котором хранятся все виды событий (включая записи о температуре, но не сама температура), и inv_unit, в котором хранится физическая информация о контейнер. Первые две таблицы находятся во взаимосвязи "многие к одному" с inv_unit, и когда происходит запись температуры или событие подключения, данные записываются в обе таблицы - тип события в service_events и температура в reefer_records. Мой SQL-запрос в огромном ярлыке выглядит так:
SELECT inv_unit.id,
reefer_records.Temp_recorded
reefer_records.Time_recorded
'' as event_type
FROM inv_unit INNER JOIN reefer_records on....
UNION ALL
SELECT inv_unit.id
'' as temp_recorded
srv_events.time_recorded
srv_events.event_type
FROM inv_unit INNER JOIN srv_events on...
Полный запрос здесь