Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Mailing Lists -> Oracle-L -> RE: Finding overlapping time periods - suggestions please
Here's a simple programmatic method (careful, I haven't tested it).
declare
v_activity_count number := 0;
begin
for rec in (
select start_time event_time, 'start' event_type from some_table union select end_time event_time, 'end' event_type from some_table order by1
) loop
if(rec.event_type = 'start') then v_activity_count:= v_activity_count + 1; else v_activity_count:= v_activity_count - 1; end if if(v_activity_count = 1) then
-- One activity
elseif(v_activity_count > 1) then
-- Overlapping activities
else
-- Nothing going on
end if;
Regards
David Lord
-----Original Message-----
[mailto:babette.turnerunderwood_at_hrdc-drhc.gc.ca]
Sent: 31 October 2003 18:25
To: Multiple recipients of list ORACLE-L
I was wondering if anyone had the need to find overlapping time periods and
how to identify them efficiently.
Here is the scenario:
Elapsed minutes refer to the actual "clock" time either spent on a given
task. Thus an activity that started at 9:00 am and finished at 11:00 am on
the same day is said to have 120 elapsed minutes.
If one task overlaps another (either completely or partially with another
task), then the tasks are said to be "multitasked". In that case the system
will store the portion of the elapsed time that was multitasked as "elapsed
multitask minutes" and the portion of the time that was not overlapped as
"elapsed single minutes". In addition, for the portion of time that two or
more activities were simultaneously taking place; their time will be divided
by the number of simultaneous activities and stored as "prorated multi
minutes". The sum of Elapsed Single Minutes and Prorated Minutes will equal
the actual clock time that a vehicle was active.
The following example should help to illustrate these concepts. In the
table below a list of fictitious activities for a vehicle are shown in
addition to how the time is allocated to the various measures:
Activity Start Time End Time Elapsed Minutes Elapsed Multitask Minutes Elapsed Single Minutes Prorated Multi Minutes Prorated Minutes 1 10:00 12:00 120 60 60 25 85 3 11:00 13:00 120 120 0 55 55 4 11:30 13:30 120 90 30 40 70 7 13:30 16:00 150 0 150 0 150 Totals 510 270 240 120 360The vehicle was active from 10:00 to 16:00, a total of 6 hours (360 minutes) which is equal to the total of Prorated Minutes. The vehicle performed 8 ½ hours (510 minutes) of work during that 6-hour time span. This can be arrived at by adding the total of Elapsed Multitask Minutes (270) + the total of Elapsed Single Minutes (240).
If they have come to you in error you must take no action based on them, nor must you copy or show them to anyone; please reply to this e-mail and highlight the error. Please note that this e-mail has been created in the knowledge that Internet e-mail is not a 100% secure communications medium. We advise that you understand and observe this lack of security when e-mailing us. Steps have been taken to ensure this e-mail and attachments are free from any virus, but advise the recipient to ensure they are actually virus free. The views, opinions and judgments expressed in this message are solely those of the author. The message contents have not been reviewed or approved by Iron Mountain.
Fat City Network Services -- 858-538-5051 http://www.fatcity.com San Diego, California -- Mailing list and web hosting services ---------------------------------------------------------------------To REMOVE yourself from this mailing list, send an E-Mail message to: ListGuru_at_fatcity.com (note EXACT spelling of 'ListGuru') and in the message BODY, include a line containing: UNSUB ORACLE-L (or the name of mailing list you want to be removed from). You may also send the HELP command for other information (like subscribing). Received on Sat Nov 01 2003 - 05:39:39 CST
![]() |
![]() |