select distinct
a.编码 as 部门编号,
a.名称 部门,
B.编号 as 人员编号,
b.姓名,
d.用户名,
substr(t.角色, 4, 20) as 角色,t.标题, t.说明,t.功能
from 部门表 a,
人员表 b,
部门人员 c,
上机人员表 d,
dba_role_privs e,
dba_roles f,
(select g.角色, h.序号, h.标题, h.说明, h.系统,G.功能
from (select distinct 系统, 序号, 角色,功能 from zltools.zlrolegrant) g,
zltools.zlprograms h
where g.序号 = h.序号
and h.系统 is not null) t
where e.granted_role = f.role
and f.role like '%ZL_%'
and a.id = c.部门id
and b.id = c.人员id
and b.id = d.人员id
and e.grantee = d.用户名
and f.role = t.角色
and C.缺省=1
And C.部门ID /*B0*/is not null/*E0*/
order by 部门编号,人员编号