需求:组织机构表t_uic_dept, dept_level = 2为公司,dept_level='5'为部门。
现在要查出所有部门以及对应的公司一行展示。
展示列为:部门Code,部门名称,公司Code,公司名称。
SQL为:
with a as
(select t.dept_code, t.dept_name, t.dept_level, t.dept_parentcode
from caissa_erp_uic.T_UIC_DEPT t
where t.dept_level = '5'),
b as
(select d.dept_code,
d.dept_name,
d.dept_level,
sys_connect_by_path(d.dept_code, '/') treepath
from caissa_erp_uic.T_UIC_DEPT d
where d.dept_level = '2'
CONNECT BY NOCYCLE PRIOR d.dept_parentcode = d.dept_code
start with d.dept_code in (select a.dept_code from a))
select a.dept_code,
a.dept_name,
-- a.dept_level,
b.dept_code,
b.dept_name
-- b.dept_level
from a, b
where instr(b.treepath, a.dept_code) > 0