SQL-視圖的使用

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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章