View Definition:
with t as (SELECT
ZZ1.AUDIT_TIMESTAMP AUDIT_TIMESTAMP,
ZZ1.AUDIT_TRANSACTION_TYPE AUDIT_TRANSACTION_TYPE,
ZZ1.AUDIT_USER_NAME AUDIT_USER_NAME,
ZZ1.AUDIT_TRUE_NULLS AUDIT_TRUE_NULLS,
ZZ1.ARREST_CHARGE_CODE ARREST_CHARGE_CODE,
ZZ1.ARREST_CHA_DESC ARREST_CHA_DESC,
ZZ1.OFFENSE_CODE OFFENSE_CODE,
ZZ1.CREATOR_ID CREATOR_ID,
ZZ1.CREATOR_DATE CREATOR_DATE,
ZZ1.UPDATOR_ID UPDATOR_ID,
ZZ1.UPDATOR_DATE UPDATOR_DATE,
ZZ1.REC_ID REC_ID,
ZZ1.ACTIVE_FLAG ACTIVE_FLAG FROM ZZ_ARREST_CHARGE_CODES ZZ1
union all
select
sysdate, 'C', null, null, ZZ2.ARREST_CHARGE_CODE, ZZ2.ARREST_CHA_DESC, ZZ2.OFFENSE_CODE, ZZ2.CREATOR_ID, ZZ2.CREATOR_DATE, ZZ2.UPDATOR_ID, ZZ2.UPDATOR_DATE, ZZ2.REC_ID, ZZ2.ACTIVE_FLAG FROM ARREST_CHARGE_CODES ZZ2
where exists ( select * from ZZ_ARREST_CHARGE_CODES where ARREST_CHARGE_CODE= ZZ2.ARREST_CHARGE_CODE ))
select AUDIT_TIMESTAMP, AUDIT_TRANSACTION_TYPE, AUDIT_USER_NAME, ARREST_CHARGE_CODE, ARREST_CHA_DESC, OFFENSE_CODE, CREATOR_ID, CREATOR_DATE, UPDATOR_ID, UPDATOR_DATE, REC_ID, ACTIVE_FLAG from (
select AUDIT_TIMESTAMP, AUDIT_TRANSACTION_TYPE, AUDIT_USER_NAME, ARREST_CHARGE_CODE,( CASE WHEN audit_transaction_type in ( 'C','D') then ARREST_CHA_DESC
ELSE (CASE
WHEN NVL(SUBSTR(lead(AUDIT_TRUE_NULLS) over (partition by ARREST_CHARGE_CODE order by audit_timestamp asc),6,1),'N')
='N' THEN lead(ARREST_CHA_DESC ignore nulls) over (partition by ARREST_CHARGE_CODE order by audit_timestamp asc)
END)
END) ARREST_CHA_DESC,( CASE WHEN audit_transaction_type in ( 'C','D') then OFFENSE_CODE
ELSE (CASE
WHEN NVL(SUBSTR(lead(AUDIT_TRUE_NULLS) over (partition by ARREST_CHARGE_CODE order by audit_timestamp asc),7,1),'N')
='N' THEN lead(OFFENSE_CODE ignore nulls) over (partition by ARREST_CHARGE_CODE order by audit_timestamp asc)
END)
END) OFFENSE_CODE,( CASE WHEN audit_transaction_type in ( 'C','D') then CREATOR_ID
ELSE (CASE
WHEN NVL(SUBSTR(lead(AUDIT_TRUE_NULLS) over (partition by ARREST_CHARGE_CODE order by audit_timestamp asc),8,1),'N')
='N' THEN lead(CREATOR_ID ignore nulls) over (partition by ARREST_CHARGE_CODE order by audit_timestamp asc)
END)
END) CREATOR_ID,( CASE WHEN audit_transaction_type in ( 'C','D') then CREATOR_DATE
ELSE (CASE
WHEN NVL(SUBSTR(lead(AUDIT_TRUE_NULLS) over (partition by ARREST_CHARGE_CODE order by audit_timestamp asc),9,1),'N')
='N' THEN lead(CREATOR_DATE ignore nulls) over (partition by ARREST_CHARGE_CODE order by audit_timestamp asc)
END)
END) CREATOR_DATE,( CASE WHEN audit_transaction_type in ( 'C','D') then UPDATOR_ID
ELSE (CASE
WHEN NVL(SUBSTR(lead(AUDIT_TRUE_NULLS) over (partition by ARREST_CHARGE_CODE order by audit_timestamp asc),10,1),'N')
='N' THEN lead(UPDATOR_ID ignore nulls) over (partition by ARREST_CHARGE_CODE order by audit_timestamp asc)
END)
END) UPDATOR_ID,( CASE WHEN audit_transaction_type in ( 'C','D') then UPDATOR_DATE
ELSE (CASE
WHEN NVL(SUBSTR(lead(AUDIT_TRUE_NULLS) over (partition by ARREST_CHARGE_CODE order by audit_timestamp asc),11,1),'N')
='N' THEN lead(UPDATOR_DATE ignore nulls) over (partition by ARREST_CHARGE_CODE order by audit_timestamp asc)
END)
END) UPDATOR_DATE,( CASE WHEN audit_transaction_type in ( 'C','D') then REC_ID
ELSE (CASE
WHEN NVL(SUBSTR(lead(AUDIT_TRUE_NULLS) over (partition by ARREST_CHARGE_CODE order by audit_timestamp asc),12,1),'N')
='N' THEN lead(REC_ID ignore nulls) over (partition by ARREST_CHARGE_CODE order by audit_timestamp asc)
END)
END) REC_ID,( CASE WHEN audit_transaction_type in ( 'C','D') then ACTIVE_FLAG
ELSE (CASE
WHEN NVL(SUBSTR(lead(AUDIT_TRUE_NULLS) over (partition by ARREST_CHARGE_CODE order by audit_timestamp asc),13,1),'N')
='N' THEN lead(ACTIVE_FLAG ignore nulls) over (partition by ARREST_CHARGE_CODE order by audit_timestamp asc)
END)
END) ACTIVE_FLAG,row_number() over (partition by ARREST_CHARGE_CODE order by audit_timestamp asc) as rn
from t
)