zoukankan      html  css  js  c++  java
  • SqlServer 实现CTE(递归)查询

    寻找良久,终于实现,记个笔记:

    --SqlServer 2005 CTE


    with cte (deptid,dptname,parentid) as (

    --起始条件
    select a.deptid,a.dptname,a.parentid from base_dept a where a.deptid = 2
    union all

    --CTE每次递归条件
    select a.deptid,a.dptname,a.parentid from base_dept a, cte where a.parentid = cte.deptid
    )

    --DTE必须紧跟着SQL语句使用。
    select deptid,dptname,parentid from cte order by dptname;

    附送一个使用CTE的例子:

    --CTE
    with cte (deptid,dptname,parentid) as (
    select a.deptid,a.dptname,a.parentid from base_dept a where a.deptid = 2
    union all
    select a.deptid,a.dptname,a.parentid from base_dept a, cte where a.parentid = cte.deptid
    )
    select a.cdeptid,a.cdeptparentid,count(a.cid) as ccount
    from base_excute_compel a,cte
    where a.CompelTime >= '2010-01-01'
    and a.CompelTime <= '2013-01-01'
    and a.cdeptid in (cte.deptid)
    group by a.cdeptid,a.cdeptparentid

  • 相关阅读:
    ROC曲线
    数学建模的时间表和分工
    找寻子串
    被7整除
    Java中BufferedReader和scanner的对比
    机器学习降维方法
    梯度下降法
    天池大赛
    统一认证系统(三)
    软件设计方案
  • 原文地址:https://www.cnblogs.com/smartbooks/p/2653884.html
Copyright © 2011-2022 走看看