我有一份报告显示冷藏集装箱的事件。仅有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水晶功能,但没有太多运气。
编辑:关于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...
完整查询is here