我有2個表:ORACLE SQL基於不同的基於時間的事件連接表
- PROCESSOR_EVENT(ID,時間,機,名稱,狀態)
- COMM_EVENT(ID,時間,機,名稱,類型)
我想檢索PROCESSOR_EVENT.Time和下一個PROCESSOR_EVENT.Time之前的下一個COMM_EVENT之間的時間差。
即在下一個PROCESSOR_EVENT之前發生的PROCESSOR_EVENT之後的第一個COMM_EVENT事件。
示例數據:
PROCESSOR_EVENT(Id, Time, Machine, Name, State)
1, 01:00:00, TRX4, Ignition, Heated
2, 01:00:03, TRX1, Movement, Triangulating
3, 01:00:23, TRX4, Movement, Heated
4, 01:00:32, TRX4, Direction Change, Stable
5, 01:00:56, TRX4, Stopping, Heated
COMM_EVENT(Id, Time, Machine, Name, Type)
1, 01:00:02, TRX4, Direction request, Request
2, 01:00:15, TRX4, Direction acknowledgement, Acknowledgement
3, 01:00:16, TRX1, Position change, Command
4, 01:00:34, TRX4, Direction request, Request
5, 01:01:02, TRX4, Position change, Command
預期回報:
PROCESSOR_EVENT.Time, PROCESSOR_EVENT.Machine, PROCESSOR_EVENT.Name, COMM_EVENT.Time, COMM_EVENT.Type, TimeDifference
01:00:00, TRX4, Ignition, 01:00:02, Request, 2
01:00:03, TRX1, Movement, 01:00:16, Command, 13
01:00:23, TRX4, Movement, null, null, null
01:00:32, TRX4, Direction Change, 01:00:34, Request, 11
01:00:56, TRX4, Stopping, 01:01:02, Command, 6
如何去這樣做將是巨大的任何想法,在此先感謝您的時間。
您可以嘗試延遲和主導功能。 – Nitish 2014-10-10 07:10:21
在您預期的回報中是否應該將處理器事件4與通信事件4結合在一起?處理器事件3沒有相應的通信事件?你說你想在下一個處理器事件之前進行下一個comm事件。在處理器事件3之後但在下一個處理器事件(它是4)之前沒有發生通信事件。對? – 2014-10-10 07:48:29
是的,你說得對,謝謝你指出,我已經更新了。 – 2014-10-10 08:04:34