求sql 里面的递归写法
现有表 如下table1
Id 部门 上级ID
2 台湾分公司 1
3 销售-部 2
4 销售一组 3
5 销售二组 3teble2
员工表
id name 部门ID 职务
8 张三 2 经理
10 李四 3 销售员
11 王五 3 销售员
...
现在要求 随便传个部门Id 把该部门所属的人全找出来
现有表 如下table1
Id 部门 上级ID
2 台湾分公司 1
3 销售-部 2
4 销售一组 3
5 销售二组 3teble2
员工表
id name 部门ID 职务
8 张三 2 经理
10 李四 3 销售员
11 王五 3 销售员
...
现在要求 随便传个部门Id 把该部门所属的人全找出来
http://blog.csdn.net/xys_777/archive/2010/06/15/5672481.aspx
一个部门对应多个职位,每个员工只有一个职位,由职位找到部门
position(dept_no,position_no,name)
employee(empl_no,empl_name,position_no....)select a.*
from employee a
left join position b on a.position_no=b.position_no
where b.dept_no='xxxx'
SET @Dept_name = 7
;WITH
DEPTS AS(
-- 定位点成员
SELECT * FROM dbo.pm_organization WHERE organ_id = @Dept_name
UNION ALL
-- 递归成员, 通过引用CTE自身与Dept基表JOIN实现递归
SELECT A.* FROM dbo.pm_organization A, DEPTS B WHERE A.parent_id = B.organ_id
)
SELECT * FROM DEPTS de
inner join dbo.pm_employee pe on de.organ_id = pe.organ_id