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