OK I got it figured out with a single query. its a bit long but ill post part of it for reference.
[code]SELECT MIN(DATE_TIME) AS DATE_TIME,
NVL(SUM(DAYS_EVENT_DURATION * 24),0) AS RUN_DAYS,
NVL(SUM(SWING_EVENT_DURATION * 24),0) AS RUN_SWING,
NVL(SUM(GRAVE_EVENT_DURATION * 24),0) AS RUN_GRAVE,
NVL(SUM(INDIRECT_EVENT_DURATION * 24),0) AS INDIRECT,
NVL(SUM(PM_EVENT_DURATION * 24),0) AS PM,
NVL(SUM(REPAIR_WAIT_EVENT_DURATION * 24),0) AS REPAIR_WAIT,
NVL(SUM(REPAIR_ARRIVED_EVENT_DURATION * 24),0) AS REPAIR_ARRIVED,
NVL(SUM(IDLE_EVENT_DURATION * 24),0) AS IDLE
FROM ------------------------------------------------RUN DAYS
(SELECT DATE_TIME,
DAYS_EVENT_DURATION,
SWING_EVENT_DURATION,
GRAVE_EVENT_DURATION,
INDIRECT_EVENT_DURATION,
PM_EVENT_DURATION,
REPAIR_WAIT_EVENT_DURATION,
REPAIR_ARRIVED_EVENT_DURATION,
IDLE_EVENT_DURATION
FROM
(SELECT (DATE_DT - LEAD(DATE_DT) OVER (
ORDER BY DATE_DT DESC)) AS DAYS_EVENT_DURATION,
NULL AS SWING_EVENT_DURATION,
NULL AS GRAVE_EVENT_DURATION,
NULL AS INDIRECT_EVENT_DURATION,
NULL AS PM_EVENT_DURATION,
NULL AS REPAIR_WAIT_EVENT_DURATION,
NULL AS REPAIR_ARRIVED_EVENT_DURATION,
NULL AS IDLE_EVENT_DURATION,
LEAD(EVENTTYPE, 1,0) OVER (
ORDER BY DATE_DT DESC) AS EVENTTYPE,
LEAD(SHIFT, 1,0) OVER (
ORDER BY DATE_DT DESC) AS SHIFT,
TRUNC(DATE_DT) AS DATE_TIME
FROM
(SELECT DATE_DT,
SHIFT,
ASSET_ID,
EVENTTYPE
FROM TEST_CHRIS
WHERE DATE_DT BETWEEN to_date(to_char(sysdate-0, ‘YYYY-MM-DD’) || ‘05:30:00’, ‘YYYY-MM-DD HH24:MI:SS’) AND to_date(to_char(sysdate+1, ‘YYYY-MM-DD’) || ‘05:30:00’, ‘YYYY-MM-DD HH24:MI:SS’)
AND ASSET_ID = 1916
ORDER BY DATE_DT))
WHERE SHIFT = 1
AND EVENTTYPE = 1
UNION ALL ----------------------------------------------------RUN SWING
SELECT DATE_TIME,
DAYS_EVENT_DURATION,
SWING_EVENT_DURATION,
GRAVE_EVENT_DURATION,
INDIRECT_EVENT_DURATION,
PM_EVENT_DURATION,
REPAIR_WAIT_EVENT_DURATION,
REPAIR_ARRIVED_EVENT_DURATION,
IDLE_EVENT_DURATION
FROM
(SELECT NULL AS DAYS_EVENT_DURATION,
(DATE_DT - LEAD(DATE_DT) OVER (
ORDER BY DATE_DT DESC)) AS SWING_EVENT_DURATION,
NULL AS GRAVE_EVENT_DURATION,
NULL AS INDIRECT_EVENT_DURATION,
NULL AS PM_EVENT_DURATION,
NULL AS REPAIR_WAIT_EVENT_DURATION,
NULL AS REPAIR_ARRIVED_EVENT_DURATION,
NULL AS IDLE_EVENT_DURATION,
LEAD(EVENTTYPE, 1,0) OVER (
ORDER BY DATE_DT DESC) AS EVENTTYPE,
LEAD(SHIFT, 1,0) OVER (
ORDER BY DATE_DT DESC) AS SHIFT,
TRUNC(DATE_DT) AS DATE_TIME
FROM
(SELECT DATE_DT,
SHIFT,
ASSET_ID,
EVENTTYPE
FROM TEST_CHRIS
WHERE DATE_DT BETWEEN to_date(to_char(sysdate-0, ‘YYYY-MM-DD’) || ‘05:30:00’, ‘YYYY-MM-DD HH24:MI:SS’) AND to_date(to_char(sysdate+1, ‘YYYY-MM-DD’) || ‘05:30:00’, ‘YYYY-MM-DD HH24:MI:SS’)
AND ASSET_ID = 1916
ORDER BY DATE_DT))
WHERE SHIFT = 2
AND EVENTTYPE = 1
UNION ALL ----------------------------------------------------RUN GRAVE
SELECT DATE_TIME,
DAYS_EVENT_DURATION,
SWING_EVENT_DURATION,
GRAVE_EVENT_DURATION,
INDIRECT_EVENT_DURATION,
PM_EVENT_DURATION,
REPAIR_WAIT_EVENT_DURATION,
REPAIR_ARRIVED_EVENT_DURATION,
IDLE_EVENT_DURATION
FROM
(SELECT NULL AS DAYS_EVENT_DURATION,
NULL AS SWING_EVENT_DURATION,
(DATE_DT - LEAD(DATE_DT) OVER (
ORDER BY DATE_DT DESC)) AS GRAVE_EVENT_DURATION,
NULL AS INDIRECT_EVENT_DURATION,
NULL AS PM_EVENT_DURATION,
NULL AS REPAIR_WAIT_EVENT_DURATION,
NULL AS REPAIR_ARRIVED_EVENT_DURATION,
NULL AS IDLE_EVENT_DURATION,
LEAD(EVENTTYPE, 1,0) OVER (
ORDER BY DATE_DT DESC) AS EVENTTYPE,
LEAD(SHIFT, 1,0) OVER (
ORDER BY DATE_DT DESC) AS SHIFT,
TRUNC(DATE_DT) AS DATE_TIME
FROM
(SELECT DATE_DT,
SHIFT,
ASSET_ID,
EVENTTYPE
FROM TEST_CHRIS
WHERE DATE_DT BETWEEN to_date(to_char(sysdate-0, ‘YYYY-MM-DD’) || ‘05:30:00’, ‘YYYY-MM-DD HH24:MI:SS’) AND to_date(to_char(sysdate+1, ‘YYYY-MM-DD’) || ‘05:30:00’, ‘YYYY-MM-DD HH24:MI:SS’)
AND ASSET_ID = 1916
ORDER BY DATE_DT))
WHERE SHIFT = 3
AND EVENTTYPE = 1
UNION ALL ----------------------------------------------------IDLE
SELECT DATE_TIME,
DAYS_EVENT_DURATION,
SWING_EVENT_DURATION,
GRAVE_EVENT_DURATION,
INDIRECT_EVENT_DURATION,
PM_EVENT_DURATION,
REPAIR_WAIT_EVENT_DURATION,
REPAIR_ARRIVED_EVENT_DURATION,
IDLE_EVENT_DURATION
FROM
(SELECT NULL AS DAYS_EVENT_DURATION,
NULL AS SWING_EVENT_DURATION,
NULL AS GRAVE_EVENT_DURATION,
(DATE_DT - LEAD(DATE_DT) OVER (
ORDER BY DATE_DT DESC)) AS INDIRECT_EVENT_DURATION,
NULL AS PM_EVENT_DURATION,
NULL AS REPAIR_WAIT_EVENT_DURATION,
NULL AS REPAIR_ARRIVED_EVENT_DURATION,
NULL AS IDLE_EVENT_DURATION,
LEAD(EVENTTYPE, 1,0) OVER (
ORDER BY DATE_DT DESC) AS EVENTTYPE,
LEAD(SHIFT, 1,0) OVER (
ORDER BY DATE_DT DESC) AS SHIFT,
TRUNC(DATE_DT) AS DATE_TIME
FROM
(SELECT DATE_DT,
SHIFT,
ASSET_ID,
EVENTTYPE
FROM TEST_CHRIS
WHERE DATE_DT BETWEEN to_date(to_char(sysdate-0, ‘YYYY-MM-DD’) || ‘05:30:00’, ‘YYYY-MM-DD HH24:MI:SS’) AND to_date(to_char(sysdate+1, ‘YYYY-MM-DD’) || ‘05:30:00’, ‘YYYY-MM-DD HH24:MI:SS’)
AND ASSET_ID = 1916
ORDER BY DATE_DT))
WHERE EVENTTYPE = 2
UNION ALL ----------------------------------------------------PM
SELECT DATE_TIME,
DAYS_EVENT_DURATION,
SWING_EVENT_DURATION,
GRAVE_EVENT_DURATION,
INDIRECT_EVENT_DURATION,
PM_EVENT_DURATION,
REPAIR_WAIT_EVENT_DURATION,
REPAIR_ARRIVED_EVENT_DURATION,
IDLE_EVENT_DURATION
FROM
(SELECT NULL AS DAYS_EVENT_DURATION,
NULL AS SWING_EVENT_DURATION,
NULL AS GRAVE_EVENT_DURATION,
NULL AS INDIRECT_EVENT_DURATION,
(DATE_DT - LEAD(DATE_DT) OVER (
ORDER BY DATE_DT DESC)) AS PM_EVENT_DURATION,
NULL AS REPAIR_WAIT_EVENT_DURATION,
NULL AS REPAIR_ARRIVED_EVENT_DURATION,
NULL AS IDLE_EVENT_DURATION,
LEAD(EVENTTYPE, 1,0) OVER (
ORDER BY DATE_DT DESC) AS EVENTTYPE,
LEAD(SHIFT, 1,0) OVER (
ORDER BY DATE_DT DESC) AS SHIFT,
TRUNC(DATE_DT) AS DATE_TIME
FROM
(SELECT DATE_DT,
SHIFT,
ASSET_ID,
EVENTTYPE
FROM TEST_CHRIS
WHERE DATE_DT BETWEEN to_date(to_char(sysdate-0, ‘YYYY-MM-DD’) || ‘05:30:00’, ‘YYYY-MM-DD HH24:MI:SS’) AND to_date(to_char(sysdate+1, ‘YYYY-MM-DD’) || ‘05:30:00’, ‘YYYY-MM-DD HH24:MI:SS’)
AND ASSET_ID = 1916
ORDER BY DATE_DT))
WHERE EVENTTYPE = 7
UNION ALL ----------------------------------------------------REPAIR WAIT
SELECT DATE_TIME,
DAYS_EVENT_DURATION,
SWING_EVENT_DURATION,
GRAVE_EVENT_DURATION,
INDIRECT_EVENT_DURATION,
PM_EVENT_DURATION,
REPAIR_WAIT_EVENT_DURATION,
REPAIR_ARRIVED_EVENT_DURATION,
IDLE_EVENT_DURATION
FROM
(SELECT NULL AS DAYS_EVENT_DURATION,
NULL AS SWING_EVENT_DURATION,
NULL AS GRAVE_EVENT_DURATION,
NULL AS INDIRECT_EVENT_DURATION,
NULL AS PM_EVENT_DURATION,
(DATE_DT - LEAD(DATE_DT) OVER (
ORDER BY DATE_DT DESC)) AS REPAIR_WAIT_EVENT_DURATION,
NULL AS REPAIR_ARRIVED_EVENT_DURATION,
NULL AS IDLE_EVENT_DURATION,
LEAD(EVENTTYPE, 1,0) OVER (
ORDER BY DATE_DT DESC) AS EVENTTYPE,
LEAD(SHIFT, 1,0) OVER (
ORDER BY DATE_DT DESC) AS SHIFT,
TRUNC(DATE_DT) AS DATE_TIME
FROM
(SELECT DATE_DT,
SHIFT,
ASSET_ID,
EVENTTYPE
FROM TEST_CHRIS
WHERE DATE_DT BETWEEN to_date(to_char(sysdate-0, ‘YYYY-MM-DD’) || ‘05:30:00’, ‘YYYY-MM-DD HH24:MI:SS’) AND to_date(to_char(sysdate+1, ‘YYYY-MM-DD’) || ‘05:30:00’, ‘YYYY-MM-DD HH24:MI:SS’)
AND ASSET_ID = 1916
ORDER BY DATE_DT))
WHERE EVENTTYPE = 8
UNION ALL ----------------------------------------------------REPAIR ARRIVED
SELECT DATE_TIME,
DAYS_EVENT_DURATION,
SWING_EVENT_DURATION,
GRAVE_EVENT_DURATION,
INDIRECT_EVENT_DURATION,
PM_EVENT_DURATION,
REPAIR_WAIT_EVENT_DURATION,
REPAIR_ARRIVED_EVENT_DURATION,
IDLE_EVENT_DURATION
FROM
(SELECT NULL AS DAYS_EVENT_DURATION,
NULL AS SWING_EVENT_DURATION,
NULL AS GRAVE_EVENT_DURATION,
NULL AS INDIRECT_EVENT_DURATION,
NULL AS PM_EVENT_DURATION,
NULL AS REPAIR_WAIT_EVENT_DURATION,
(DATE_DT - LEAD(DATE_DT) OVER (
ORDER BY DATE_DT DESC)) AS REPAIR_ARRIVED_EVENT_DURATION,
NULL AS IDLE_EVENT_DURATION,
LEAD(EVENTTYPE, 1,0) OVER (
ORDER BY DATE_DT DESC) AS EVENTTYPE,
LEAD(SHIFT, 1,0) OVER (
ORDER BY DATE_DT DESC) AS SHIFT,
TRUNC(DATE_DT) AS DATE_TIME
FROM
(SELECT DATE_DT,
SHIFT,
ASSET_ID,
EVENTTYPE
FROM TEST_CHRIS
WHERE DATE_DT BETWEEN to_date(to_char(sysdate-0, ‘YYYY-MM-DD’) || ‘05:30:00’, ‘YYYY-MM-DD HH24:MI:SS’) AND to_date(to_char(sysdate+1, ‘YYYY-MM-DD’) || ‘05:30:00’, ‘YYYY-MM-DD HH24:MI:SS’)
AND ASSET_ID = 1916
ORDER BY DATE_DT))
WHERE EVENTTYPE = 9
UNION ALL ----------------------------------------------------IDLE
SELECT DATE_TIME,
DAYS_EVENT_DURATION,
SWING_EVENT_DURATION,
GRAVE_EVENT_DURATION,
INDIRECT_EVENT_DURATION,
PM_EVENT_DURATION,
REPAIR_WAIT_EVENT_DURATION,
REPAIR_ARRIVED_EVENT_DURATION,
IDLE_EVENT_DURATION
FROM
(SELECT NULL AS DAYS_EVENT_DURATION,
NULL AS SWING_EVENT_DURATION,
NULL AS GRAVE_EVENT_DURATION,
NULL AS INDIRECT_EVENT_DURATION,
NULL AS PM_EVENT_DURATION,
NULL AS REPAIR_WAIT_EVENT_DURATION,
NULL AS REPAIR_ARRIVED_EVENT_DURATION,
(DATE_DT - LEAD(DATE_DT) OVER (
ORDER BY DATE_DT DESC)) AS IDLE_EVENT_DURATION,
LEAD(EVENTTYPE, 1,0) OVER (
ORDER BY DATE_DT DESC) AS EVENTTYPE,
LEAD(SHIFT, 1,0) OVER (
ORDER BY DATE_DT DESC) AS SHIFT,
TRUNC(DATE_DT) AS DATE_TIME
FROM
(SELECT DATE_DT,
SHIFT,
ASSET_ID,
EVENTTYPE
FROM TEST_CHRIS
WHERE DATE_DT BETWEEN to_date(to_char(sysdate-0, ‘YYYY-MM-DD’) || ‘05:30:00’, ‘YYYY-MM-DD HH24:MI:SS’) AND to_date(to_char(sysdate+1, ‘YYYY-MM-DD’) || ‘05:30:00’, ‘YYYY-MM-DD HH24:MI:SS’)
AND ASSET_ID = 1916
ORDER BY DATE_DT))
WHERE EVENTTYPE = 0)
UNION -------------PREVIOUIS DAY 1
SELECT MIN(DATE_TIME) AS DATE_TIME,
NVL(SUM(DAYS_EVENT_DURATION * 24),0) AS RUN_DAYS,
NVL(SUM(SWING_EVENT_DURATION * 24),0) AS RUN_SWING,
NVL(SUM(GRAVE_EVENT_DURATION * 24),0) AS RUN_GRAVE,
NVL(SUM(INDIRECT_EVENT_DURATION * 24),0) AS INDIRECT,
NVL(SUM(PM_EVENT_DURATION * 24),0) AS PM,
NVL(SUM(REPAIR_WAIT_EVENT_DURATION * 24),0) AS REPAIR_WAIT,
NVL(SUM(REPAIR_ARRIVED_EVENT_DURATION * 24),0) AS REPAIR_ARRIVED,
24-(NVL(SUM(DAYS_EVENT_DURATION * 24),0)+NVL(SUM(SWING_EVENT_DURATION * 24),0)+NVL(SUM(GRAVE_EVENT_DURATION * 24),0)+NVL(SUM(INDIRECT_EVENT_DURATION * 24),0)+ NVL(SUM(PM_EVENT_DURATION * 24),0)+NVL(SUM(REPAIR_WAIT_EVENT_DURATION * 24),0)+ NVL(SUM(REPAIR_ARRIVED_EVENT_DURATION * 24),0)) AS IDLE
FROM ------------------------------------------------RUN DAYS
(SELECT DATE_TIME,
DAYS_EVENT_DURATION,
SWING_EVENT_DURATION,
GRAVE_EVENT_DURATION,
INDIRECT_EVENT_DURATION,
PM_EVENT_DURATION,
REPAIR_WAIT_EVENT_DURATION,
REPAIR_ARRIVED_EVENT_DURATION
FROM
(SELECT (DATE_DT - LEAD(DATE_DT) OVER (
ORDER BY DATE_DT DESC)) AS DAYS_EVENT_DURATION,
NULL AS SWING_EVENT_DURATION,
NULL AS GRAVE_EVENT_DURATION,
NULL AS INDIRECT_EVENT_DURATION,
NULL AS PM_EVENT_DURATION,
NULL AS REPAIR_WAIT_EVENT_DURATION,
NULL AS REPAIR_ARRIVED_EVENT_DURATION,
LEAD(EVENTTYPE, 1,0) OVER (
ORDER BY DATE_DT DESC) AS EVENTTYPE,
LEAD(SHIFT, 1,0) OVER (
ORDER BY DATE_DT DESC) AS SHIFT,
TRUNC(DATE_DT) AS DATE_TIME
FROM
(SELECT DATE_DT,
SHIFT,
ASSET_ID,
EVENTTYPE
FROM TEST_CHRIS
WHERE DATE_DT BETWEEN to_date(to_char(sysdate-1, ‘YYYY-MM-DD’) || ‘05:30:00’, ‘YYYY-MM-DD HH24:MI:SS’) AND to_date(to_char(sysdate-0, ‘YYYY-MM-DD’) || ‘05:30:00’, ‘YYYY-MM-DD HH24:MI:SS’)
AND ASSET_ID = 1916
ORDER BY DATE_DT))
WHERE SHIFT = 1
AND EVENTTYPE = 1
UNION ALL ----------------------------------------------------RUN SWING
SELECT DATE_TIME,
DAYS_EVENT_DURATION,
SWING_EVENT_DURATION,
GRAVE_EVENT_DURATION,
INDIRECT_EVENT_DURATION,
PM_EVENT_DURATION,
REPAIR_WAIT_EVENT_DURATION,
REPAIR_ARRIVED_EVENT_DURATION
FROM
(SELECT NULL AS DAYS_EVENT_DURATION,
(DATE_DT - LEAD(DATE_DT) OVER (
ORDER BY DATE_DT DESC)) AS SWING_EVENT_DURATION,
NULL AS GRAVE_EVENT_DURATION,
NULL AS INDIRECT_EVENT_DURATION,
NULL AS PM_EVENT_DURATION,
NULL AS REPAIR_WAIT_EVENT_DURATION,
NULL AS REPAIR_ARRIVED_EVENT_DURATION,
LEAD(EVENTTYPE, 1,0) OVER (
ORDER BY DATE_DT DESC) AS EVENTTYPE,
LEAD(SHIFT, 1,0) OVER (
ORDER BY DATE_DT DESC) AS SHIFT,
TRUNC(DATE_DT) AS DATE_TIME
FROM
(SELECT DATE_DT,
SHIFT,
ASSET_ID,
EVENTTYPE
FROM TEST_CHRIS
WHERE DATE_DT BETWEEN to_date(to_char(sysdate-1, ‘YYYY-MM-DD’) || ‘05:30:00’, ‘YYYY-MM-DD HH24:MI:SS’) AND to_date(to_char(sysdate-0, ‘YYYY-MM-DD’) || ‘05:30:00’, ‘YYYY-MM-DD HH24:MI:SS’)
AND ASSET_ID = 1916
ORDER BY DATE_DT))
WHERE SHIFT = 2
AND EVENTTYPE = 1
UNION ALL ----------------------------------------------------RUN GRAVE
SELECT DATE_TIME,
DAYS_EVENT_DURATION,
SWING_EVENT_DURATION,
GRAVE_EVENT_DURATION,
INDIRECT_EVENT_DURATION,
PM_EVENT_DURATION,
REPAIR_WAIT_EVENT_DURATION,
REPAIR_ARRIVED_EVENT_DURATION
FROM
(SELECT NULL AS DAYS_EVENT_DURATION,
NULL AS SWING_EVENT_DURATION,
(DATE_DT - LEAD(DATE_DT) OVER (
ORDER BY DATE_DT DESC)) AS GRAVE_EVENT_DURATION,
NULL AS INDIRECT_EVENT_DURATION,
NULL AS PM_EVENT_DURATION,
NULL AS REPAIR_WAIT_EVENT_DURATION,
NULL AS REPAIR_ARRIVED_EVENT_DURATION,
LEAD(EVENTTYPE, 1,0) OVER (
ORDER BY DATE_DT DESC) AS EVENTTYPE,
LEAD(SHIFT, 1,0) OVER (
ORDER BY DATE_DT DESC) AS SHIFT,
TRUNC(DATE_DT) AS DATE_TIME
FROM
(SELECT DATE_DT,
SHIFT,
ASSET_ID,
EVENTTYPE
FROM TEST_CHRIS
WHERE DATE_DT BETWEEN to_date(to_char(sysdate-1, ‘YYYY-MM-DD’) || ‘05:30:00’, ‘YYYY-MM-DD HH24:MI:SS’) AND to_date(to_char(sysdate-0, ‘YYYY-MM-DD’) || ‘05:30:00’, ‘YYYY-MM-DD HH24:MI:SS’)
AND ASSET_ID = 1916
ORDER BY DATE_DT))
WHERE SHIFT = 3
AND EVENTTYPE = 1
UNION ALL ----------------------------------------------------IDLE
SELECT DATE_TIME,
DAYS_EVENT_DURATION,
SWING_EVENT_DURATION,
GRAVE_EVENT_DURATION,
INDIRECT_EVENT_DURATION,
PM_EVENT_DURATION,
REPAIR_WAIT_EVENT_DURATION,
REPAIR_ARRIVED_EVENT_DURATION
FROM
(SELECT NULL AS DAYS_EVENT_DURATION,
NULL AS SWING_EVENT_DURATION,
NULL AS GRAVE_EVENT_DURATION,
(DATE_DT - LEAD(DATE_DT) OVER (
ORDER BY DATE_DT DESC)) AS INDIRECT_EVENT_DURATION,
NULL AS PM_EVENT_DURATION,
NULL AS REPAIR_WAIT_EVENT_DURATION,
NULL AS REPAIR_ARRIVED_EVENT_DURATION,
LEAD(EVENTTYPE, 1,0) OVER (
ORDER BY DATE_DT DESC) AS EVENTTYPE,
LEAD(SHIFT, 1,0) OVER (
ORDER BY DATE_DT DESC) AS SHIFT,
TRUNC(DATE_DT) AS DATE_TIME
FROM
(SELECT DATE_DT,
SHIFT,
ASSET_ID,
EVENTTYPE
FROM TEST_CHRIS
WHERE DATE_DT BETWEEN to_date(to_char(sysdate-1, ‘YYYY-MM-DD’) || ‘05:30:00’, ‘YYYY-MM-DD HH24:MI:SS’) AND to_date(to_char(sysdate-0, ‘YYYY-MM-DD’) || ‘05:30:00’, ‘YYYY-MM-DD HH24:MI:SS’)
AND ASSET_ID = 1916
ORDER BY DATE_DT))
WHERE EVENTTYPE = 2
UNION ALL ----------------------------------------------------PM
SELECT DATE_TIME,
DAYS_EVENT_DURATION,
SWING_EVENT_DURATION,
GRAVE_EVENT_DURATION,
INDIRECT_EVENT_DURATION,
PM_EVENT_DURATION,
REPAIR_WAIT_EVENT_DURATION,
REPAIR_ARRIVED_EVENT_DURATION
FROM
(SELECT NULL AS DAYS_EVENT_DURATION,
NULL AS SWING_EVENT_DURATION,
NULL AS GRAVE_EVENT_DURATION,
NULL AS INDIRECT_EVENT_DURATION,
(DATE_DT - LEAD(DATE_DT) OVER (
ORDER BY DATE_DT DESC)) AS PM_EVENT_DURATION,
NULL AS REPAIR_WAIT_EVENT_DURATION,
NULL AS REPAIR_ARRIVED_EVENT_DURATION,
LEAD(EVENTTYPE, 1,0) OVER (
ORDER BY DATE_DT DESC) AS EVENTTYPE,
LEAD(SHIFT, 1,0) OVER (
ORDER BY DATE_DT DESC) AS SHIFT,
TRUNC(DATE_DT) AS DATE_TIME
FROM
(SELECT DATE_DT,
SHIFT,
ASSET_ID,
EVENTTYPE
FROM TEST_CHRIS
WHERE DATE_DT BETWEEN to_date(to_char(sysdate-1, ‘YYYY-MM-DD’) || ‘05:30:00’, ‘YYYY-MM-DD HH24:MI:SS’) AND to_date(to_char(sysdate-0, ‘YYYY-MM-DD’) || ‘05:30:00’, ‘YYYY-MM-DD HH24:MI:SS’)
AND ASSET_ID = 1916
ORDER BY DATE_DT))
WHERE EVENTTYPE = 7
UNION ALL ----------------------------------------------------REPAIR WAIT
SELECT DATE_TIME,
DAYS_EVENT_DURATION,
SWING_EVENT_DURATION,
GRAVE_EVENT_DURATION,
INDIRECT_EVENT_DURATION,
PM_EVENT_DURATION,
REPAIR_WAIT_EVENT_DURATION,
REPAIR_ARRIVED_EVENT_DURATION
FROM
(SELECT NULL AS DAYS_EVENT_DURATION,
NULL AS SWING_EVENT_DURATION,
NULL AS GRAVE_EVENT_DURATION,
NULL AS INDIRECT_EVENT_DURATION,
NULL AS PM_EVENT_DURATION,
(DATE_DT - LEAD(DATE_DT) OVER (
ORDER BY DATE_DT DESC)) AS REPAIR_WAIT_EVENT_DURATION,
NULL AS REPAIR_ARRIVED_EVENT_DURATION,
LEAD(EVENTTYPE, 1,0) OVER (
ORDER BY DATE_DT DESC) AS EVENTTYPE,
LEAD(SHIFT, 1,0) OVER (
ORDER BY DATE_DT DESC) AS SHIFT,
TRUNC(DATE_DT) AS DATE_TIME
FROM
(SELECT DATE_DT,
SHIFT,
ASSET_ID,
EVENTTYPE
FROM TEST_CHRIS
WHERE DATE_DT BETWEEN to_date(to_char(sysdate-1, ‘YYYY-MM-DD’) || ‘05:30:00’, ‘YYYY-MM-DD HH24:MI:SS’) AND to_date(to_char(sysdate-0, ‘YYYY-MM-DD’) || ‘05:30:00’, ‘YYYY-MM-DD HH24:MI:SS’)
AND ASSET_ID = 1916
ORDER BY DATE_DT))
WHERE EVENTTYPE = 8
UNION ALL ----------------------------------------------------REPAIR ARRIVED
SELECT DATE_TIME,
DAYS_EVENT_DURATION,
SWING_EVENT_DURATION,
GRAVE_EVENT_DURATION,
INDIRECT_EVENT_DURATION,
PM_EVENT_DURATION,
REPAIR_WAIT_EVENT_DURATION,
REPAIR_ARRIVED_EVENT_DURATION
FROM
(SELECT NULL AS DAYS_EVENT_DURATION,
NULL AS SWING_EVENT_DURATION,
NULL AS GRAVE_EVENT_DURATION,
NULL AS INDIRECT_EVENT_DURATION,
NULL AS PM_EVENT_DURATION,
NULL AS REPAIR_WAIT_EVENT_DURATION,
(DATE_DT - LEAD(DATE_DT) OVER (
ORDER BY DATE_DT DESC)) AS REPAIR_ARRIVED_EVENT_DURATION,
LEAD(EVENTTYPE, 1,0) OVER (
ORDER BY DATE_DT DESC) AS EVENTTYPE,
LEAD(SHIFT, 1,0) OVER (
ORDER BY DATE_DT DESC) AS SHIFT,
TRUNC(DATE_DT) AS DATE_TIME
FROM
(SELECT DATE_DT,
SHIFT,
ASSET_ID,
EVENTTYPE
FROM TEST_CHRIS
WHERE DATE_DT BETWEEN to_date(to_char(sysdate-1, ‘YYYY-MM-DD’) || ‘05:30:00’, ‘YYYY-MM-DD HH24:MI:SS’) AND to_date(to_char(sysdate-0, ‘YYYY-MM-DD’) || ‘05:30:00’, ‘YYYY-MM-DD HH24:MI:SS’)
AND ASSET_ID = 1916
ORDER BY DATE_DT))
WHERE EVENTTYPE = 9)
UNION -----------PREVIOUS DAY 2
[/code]