CREATE
OR REPLACE VIEW pinding_approval AS SELECT
rt.*
FROM
( SELECT SERIAL_NUMBER, MIN( APPROVE_RESULT ) FROM CRD_STA_APPROVAL GROUP BY SERIAL_NUMBER HAVING MIN( APPROVE_RESULT ) > 0 ) lf
INNER JOIN CRD_STA_APPROVAL rt ON lf.SERIAL_NUMBER = rt.SERIAL_NUMBER;
CREATE
OR REPLACE VIEW pinding_approval_final AS select e.* from (select e.*, dense_rank() over(partition by e.SERIAL_NUMBER order by e.POSITION_LEVEL asc) rank from pinding_approval e WHERE e.APPROVE_RESULT = '2') e where e.rank = 1;
SELECT * FROM pinding_approval_final;
CREATE OR REPLACE VIEW approval_data AS
SELECT /*所有失敗的*/
rt.*
FROM
( SELECT SERIAL_NUMBER FROM CRD_STA_APPROVAL GROUP BY SERIAL_NUMBER HAVING MIN( APPROVE_RESULT )=0) lf
INNER JOIN CRD_STA_APPROVAL rt ON lf.SERIAL_NUMBER = rt.SERIAL_NUMBER WHERE APPROVE_RESULT =0
UNION
SELECT /*所有成功的*/
rt.*
FROM
( SELECT MAX(ID) ID,SERIAL_NUMBER FROM CRD_STA_APPROVAL GROUP BY SERIAL_NUMBER HAVING MIN( APPROVE_RESULT )=1 AND MAX( APPROVE_RESULT )=1) lf
INNER JOIN CRD_STA_APPROVAL rt ON lf.ID = rt.ID WHERE APPROVE_RESULT =1
UNION
SELECT /*還在審批中的*/
rt.*
FROM
( SELECT MAX(ID) ID,SERIAL_NUMBER FROM CRD_STA_APPROVAL GROUP BY SERIAL_NUMBER HAVING MIN( APPROVE_RESULT )=1 AND MAX( APPROVE_RESULT )=2 OR MIN( APPROVE_RESULT )=2) lf
INNER JOIN CRD_STA_APPROVAL rt ON lf.ID = rt.ID WHERE APPROVE_RESULT =2