天天看點

oracle使用with as提高查詢效率

/*
查詢目前EOMS流程組及組織架構資訊
create by Gemini.Liu
2014-01-07
*/
--create or replace view  v_getcurrent_workflow as
--組資訊
with group_info as
(
select gp1.group_intid,gp1.group_id,gp1.group_name,gp1.group_fullname,
       decode(gp1.group_type,3,gp1.group_fullname,2,gp1.group_fullname,gp2.group_fullname) arch,
       decode(gp1.group_type,3,gp1.group_id,2,gp1.group_id,gp2.group_id) archid
from ultraprocess_sysgroup gp1,ultraprocess_sysgroup gp2
where 1=1
and gp1.group_parentid=gp2.group_id
and (gp2.group_type = 3 or gp2.group_type = 2)
),
--組成員
group_user as
(
select WMSYS.WM_CONCAT(us1.user_fullname) person,WMSYS.WM_CONCAT(us1.user_loginname) personid,us2.group_intid from ultraprocess_sysuser us1,ultraprocess_sysgroup us2,ultraprocess_sysgroupuser us3
where 1=1
and us1.user_id=us3.mgroup_userid
and us2.group_id=us3.mgroup_groupid
group by us2.group_intid
),
--映射資訊
dp_map as
(
select hj.groupid,hj.processbaseschema from wf_app_dealprocess hj
where  1=1
and  hj.groupid is not null
and  hj.processbaseschema is not null
and  hj.edprocessaction<> 19
group by groupid,processbaseschema
)
/*
--工單資訊
,form_info as
(
select info.basesn,info.baseschema,info.basename,info.basestatus,info.baseid,hj.group_x,hj.groupid,hj.flagactive from wf_app_base_infor info,wf_app_dealprocess hj
where 1=1
and info.baseid=hj.processbaseid
and info.baseschema = hj.processbaseschema
and info.basestatus <> '已廢棄'
and hj.edprocessaction<> 19
)
*/
--展現資訊
select dp_map.processbaseschema 工單類别,
group_info.group_intid 組ID,
group_info.group_name 組名,
group_user.person 組成員,
group_user.personid 組成員登入名,
group_info.arch 所屬部門,
group_info.archid 所屬部門ID
from dp_map,group_info,group_user
where 1=1 
and dp_map.groupid = group_info.group_intid
and group_user.group_intid = group_info.group_intid


      

繼續閱讀