zoukankan      html  css  js  c++  java
  • SQL Server使用递归查询数据

    功能描述:有两张表,一张业务部门表A(A表中存某公司的所有业务部门信息),另一张表为用户表B(B表中存某公司所有用户所在的业务部门信息),要求使用SQL语句查询出各个部门的用户数量(注意:统计各业务部门的用户数量时,需要将其下所有子部门的用户统计进去);

     表A:

       表B:

           

    方法描述:

        使用SQL Server的递归方式:

        1、先联合两张表查询数据,并将查询出的结果存放在临时表中;

        2、使用cte方法从临时表中查询数据;

        具体的SQL脚本如下:

        

    select 
        B.用户名,
        B.业务部门,
        A.上级部门
        into #Table1
    from B left join A  on B.业务部门名称 = A.主键;
    with cte as
        (
            select 
                用户名,
                业务部门,
           上级部门, from #Table1 c where c.业务部门 = 102
         union all
         select
          用户名,
          业务部门,
          上级部门
        from cte d inner join #Table1 e on d.业务部门 = e.上级部门 )
      select SUM(用户名) 用户数量
      from cte

    drop table #Table1
  • 相关阅读:
    2017中国大学生程序设计竞赛
    HDU 1426 Sudoku Killer【DFS 数独】
    Silver Cow Party---poj3268(最短路,迪杰斯特拉)
    Heavy Transportation---poj1797
    Cow Contest---poj3660
    Frogger--poj2253
    最短路基础
    打字母小游戏
    蔡勒(Zeller)公式--黑色星期五
    2的次幂表示
  • 原文地址:https://www.cnblogs.com/yourchoose/p/4531221.html
Copyright © 2011-2022 走看看