PSC_WORKFLOWSTATUS_DURATION_V
Details
-
Schema: FUSION
-
Object owner: PSC_PER
-
Object type: VIEW
Columns
| Name |
|---|
|
RECORD_KEY OPA_PROCESS_ID IPC_SUB PTI_IPC PTI_PLR PTI_INS |
Query
| SQL_Statement |
|---|
|
WITH JOIN_VO AS ( SELECT a.record_key, COALESCE(a.opa_process_id, x.opa_process_id) AS opa_process_id, a.oic_process_id, a.lnp_rec_status, a.resource_name, a.creation_date, r.RECORD_TYPE_ID, s.system_status FROM psc_ts_wf_activities a LEFT JOIN psc_ts_process_gen_xref x ON a.oic_process_id = x.psc_xref_key LEFT JOIN psc_lnp_record_type_b r ON a.resource_name = r.RECORD_TYPE_ID INNER JOIN psc_lnp_record_status_b s ON a.lnp_rec_status = s.record_status AND s.classification = 'PMT' AND s.system_status IN ('SUB', 'IPC', 'PTI', 'PLR', 'INS') ), Filtered AS ( SELECT j.record_key, j.opa_process_id, j.system_status, j.creation_date FROM JOIN_VO j WHERE j.resource_name = 'processes' OR j.resource_name='publicSectorRecordQueries' OR j.resource_name = j.RECORD_TYPE_ID ), Pivoted AS ( SELECT record_key, opa_process_id, MIN(CASE WHEN system_status = 'SUB' THEN creation_date END) AS submitted_time, MIN(CASE WHEN system_status = 'IPC' THEN creation_date END) AS in_process_time, MIN(CASE WHEN system_status = 'PTI' THEN creation_date END) AS permit_issued_time, MIN(CASE WHEN system_status = 'PLR' THEN creation_date END) AS plan_review_time, MIN(CASE WHEN system_status = 'INS' THEN creation_date END) AS inspection_time FROM Filtered GROUP BY record_key, opa_process_id ), Durations as (SELECT record_key, opa_process_id, CASE WHEN submitted_time IS NOT NULL AND in_process_time IS NOT NULL THEN (EXTRACT(DAY FROM (in_process_time - submitted_time)) * 86400) + (EXTRACT(HOUR FROM (in_process_time - submitted_time)) * 3600) + (EXTRACT(MINUTE FROM (in_process_time - submitted_time)) * 60) + EXTRACT(SECOND FROM (in_process_time - submitted_time)) ELSE NULL END AS IPC_SUB, CASE WHEN permit_issued_time IS NOT NULL AND in_process_time IS NOT NULL THEN (EXTRACT(DAY FROM (permit_issued_time - in_process_time)) * 86400) + (EXTRACT(HOUR FROM (permit_issued_time - in_process_time)) * 3600) + (EXTRACT(MINUTE FROM (permit_issued_time - in_process_time)) * 60) + EXTRACT(SECOND FROM (permit_issued_time - in_process_time)) ELSE NULL END AS PTI_IPC, CASE WHEN permit_issued_time IS NOT NULL AND plan_review_time IS NOT NULL THEN (EXTRACT(DAY FROM (permit_issued_time - plan_review_time)) * 86400) + (EXTRACT(HOUR FROM (permit_issued_time - plan_review_time)) * 3600) + (EXTRACT(MINUTE FROM (permit_issued_time - plan_review_time)) * 60) + EXTRACT(SECOND FROM (permit_issued_time - plan_review_time)) ELSE NULL END AS PTI_PLR, CASE WHEN permit_issued_time IS NOT NULL AND inspection_time IS NOT NULL THEN (EXTRACT(DAY FROM ( inspection_time - permit_issued_time )) * 86400) + (EXTRACT(HOUR FROM (inspection_time - permit_issued_time)) * 3600) + (EXTRACT(MINUTE FROM (inspection_time - permit_issued_time)) * 60) + EXTRACT(SECOND FROM (inspection_time - permit_issued_time)) ELSE NULL END AS PTI_INS FROM Pivoted) SELECT c.record_key, c.opa_process_id, c.IPC_SUB, c.PTI_IPC, c.PTI_PLR, c.PTI_INS FROM Durations c ORDER BY c.record_key, c.opa_process_id |