永发信息网

SQL要怎么写才能把 按员工查出他所在部门所有层级关系 。

答案:2  悬赏:0  手机版
解决时间 2021-02-24 22:30
  • 提问者网友:活着好累
  • 2021-02-23 22:28
SQL要怎么写才能把 按员工查出他所在部门所有层级关系 。
最佳答案
  • 五星知识达人网友:想偏头吻你
  • 2021-02-23 23:41

WITH B1 AS(
SELECt 部门名称,部门名称 一级部门,'' 二级部门,'' 三级部门,'' 四级部门,'' 五级部门 FROM 部门表 WHERe 层级=0),
B2 AS(
SELECt B.部门名称,B1.一级部门,B.部门名称 二级部门,'' 三级部门,'' 四级部门,'' 五级部门 FROM B1 JOIN 部门表 B ON B.上级部门ID=B1.部门名称 WHERe B.层级=1),
B3 AS(
SELECt B.部门名称,B2.一级部门,B2.二级部门,B.部门名称 三级部门,'' 四级部门,'' 五级部门 FROM B2 JOIN 部门表 B ON B.上级部门ID=B2.部门名称 WHERe B.层级=2),
B4 AS(
SELECt B.部门名称,B3.一级部门,B3.二级部门,B3.三级部门,B.部门名称 四级部门,'' 五级部门 FROM B3 JOIN 部门表 B ON B.上级部门ID=B3.部门名称 WHERe B.层级=3),
B5 AS(
SELECt B.部门名称,B4.一级部门,B4.二级部门,B4.三级部门,B4.四级部门,B.部门名称 五级部门 FROM B4 JOIN 部门表 B ON B.上级部门ID=B4.部门名称 WHERe B.层级=4),
B AS(
SELECt * FROM B1
UNIOn ALL
SELECt * FROM B2
UNIOn ALL
SELECt * FROM B3
UNIOn ALL
SELECt * FROM B4
UNIOn ALL
SELECt * FROM B5)
SELECt ID,姓名,一级部门,二级部门,三级部门,四级部门,五级部门 FROM B JOIN 员工表 Y ON Y.部门=B.部门名称
追问非常感谢,能加你企鹅Q吗追答可以,^#)^&&!@*,对应的数字键
全部回答
  • 1楼网友:煞尾
  • 2021-02-24 00:58
SELECt 员工表.ID,
       员工表.部门名称,
       部门表1.部门名称,
       部门表2.部门名称,
       部门表3.部门名称,
       部门表4.部门名称,
       部门表5.部门名称
  FROM 员工表
  LEFT JOIN 部门表 部门表1
    ON 员工表.部门 = 部门表1.ID
  LEFT JOIN 部门表 部门表2
    ON 部门表1.上级部门ID = 部门表2.ID
  left join 部门表 部门表3
    on 部门表2.上级部门ID = 部门表3.ID
  left join 部门表 部门表4
    on 部门表3.上级部门ID = 部门表4.ID
  left join 部门表 部门表5
    on 部门表4.上级部门ID = 部门表5.ID追问感谢
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯