求sql 里面的递归写法
现有表 如下table1
Id          部门          上级ID
2           台湾分公司         1
3           销售-部            2
4           销售一组           3
5           销售二组           3teble2
员工表
id         name          部门ID         职务
8          张三            2            经理
10         李四            3            销售员
11         王五            3            销售员
...
现在要求 随便传个部门Id 把该部门所属的人全找出来

解决方案 »

  1.   

    树形表数据的处理总结 
    http://blog.csdn.net/xys_777/archive/2010/06/15/5672481.aspx
      

  2.   

    两个表dept,position
    一个部门对应多个职位,每个员工只有一个职位,由职位找到部门
      

  3.   

    dept(dept_no,name)
    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'
      

  4.   

    好了 自己写出来了,谢谢 777的链接大家分享下 DECLARE @Dept_name int
        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