北京oracle培训_oracle培训哪家好_CUUG官方论坛_CUUG培训怎么样_CUUG官网

 找回密码
 立即注册
查看: 11680|回复: 4

员工和部门两张表,部门分为5级,每个员工所属部门的模糊匹配查询 oracle sql的查询...

[复制链接]
发表于 2013-12-22 21:58:28 | 显示全部楼层 |阅读模式
5级部门就是:1级部门下有多个2级部门,2级部门下或许有多个3级部门....依次类推.但是一个员工不一定都有5个级别的部门,可能只有4个,3个,2个,1 个.
需要对员工所属"最小"的部门进行模糊匹配查询.
求大神指导(表随便建,字段随意)!!
回复

使用道具 举报

发表于 2013-12-23 13:16:20 | 显示全部楼层
conn scott/tiger
emp表中的mgr字段就是一种所属关系,构成了树形结构,你可以仿照dept和emp表建两个表。
但是dept要多一列类似mgr的所属列。
我用下面的树查询来给出一个节点上面的爷爷和祖先节点的查法:
select t.*,level from emp t
  2  start with t.empno='7788'
  3  connect by nocycle prior t.mgr=t.empno
  4  order siblings by t.ename;

     EMPNO ENAME      JOB              MGR HIREDATE         SAL       COMM     DEPTNO      LEVEL
---------- ---------- --------- ---------- --------- ---------- ---------- ---------- ----------
      7788 SCOTT      ANALYST         7566 19-APR-87       3000                    20          1
      7566 JONES      MANAGER         7839 02-APR-81       2975                    20          2
      7839 KING       PRESIDENT            17-NOV-81       5000                    10          3
在给出一个7788上一级记录所属部门的查法。

select deptno from (
  2  select t.*,level level_num from emp t
  3  start with t.empno='7788'
  4  connect by nocycle prior t.mgr=t.empno
  5  order siblings by t.ename
  6  ) t
  7  where t.level_num=2;

    DEPTNO
----------
        20

你说的所属最小部门,你只要建表差不多就查部门号就行了,如果用到什么我上面的高级匹配其爷爷和祖先的部门就用树查询。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|CUUG认证培训 ( 京ICP备11008061号 )

GMT+8, 2024-11-28 10:39 , Processed in 0.018272 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表