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追问感谢
员工表.部门名称,
部门表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追问感谢
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯