AVGUTIL iAkoOICJUSERID 0 BEGIN DECLARE SECTION END DECLARE SECTION WHENEVER SQLERROR GOTO ERROR WHENEVER NOT FOUND GOTO ERROR DECLARE gettime CURSOR WITH HOLD FOR SELECT TIME_LOGGED, SECONDS_TIMESTAMP FROM LANM.RING_PERFORMANCE WHERE SEGMENT_NUMBER = :segment AND ((DATE_LOGGED = :BeginDate AND TIME_LOGGED >= :BeginTime) OR (DATE_LOGGED > :BeginDate)) ORDER BY SECONDS_TIMESTAMP ASC FOR FETCH ONLY OPEN gettime FETCH gettime INTO :BeginTime, :Start CLOSE gettime DECLARE lastrec CURSOR WITH HOLD FOR SELECT SECONDS_TIMESTAMP FROM LANM.RING_PERFORMANCE WHERE SEGMENT_NUMBER = :segment AND ((DATE_LOGGED = :EndDate AND TIME_LOGGED <= :EndTime) OR (DATE_LOGGED < :EndDate)) ORDER BY SECONDS_TIMESTAMP DESC FOR FETCH ONLY OPEN lastrec FETCH lastrec INTO :Finish CLOSE lastrec SELECT MAX(SECONDS_TIMESTAMP) INTO :Finish FROM LANM.RING_PERFORMANCE WHERE SEGMENT_NUMBER = :segment SELECT DATE_LOGGED, TIME_LOGGED INTO :EndDate, :EndTime FROM LANM.RING_PERFORMANCE WHERE SEGMENT_NUMBER = :segment AND SECONDS_TIMESTAMP = :Finish SELECT DATE_LOGGED, TIME_LOGGED INTO :BeginDate, :BeginTime FROM LANM.RING_PERFORMANCE WHERE SEGMENT_NUMBER = :segment AND SECONDS_TIMESTAMP = :Start SELECT AVG(UTILIZATION) INTO :average FROM LANM.RING_PERFORMANCE WHERE SEGMENT_NUMBER = :segment AND SECONDS_TIMESTAMP BETWEEN :Start AND :Finish BeginTime BeginDate EndTime EndDate average segment Start Finish