create table #Tmp
(
ID int IDENTITY (1,1) not null,
name varchar(50),
sl int
);

DECLARE @ID VARCHAR(36)
SET @ID = '7197ccfb-f01d-437f-9059-f4b821ebf2e1'
;WITH T AS
(
SELECT ID , parentid , NAME
FROM Base_SXZD
WHERE ID = @ID
UNION ALL
SELECT A.ID , A.parentid , A.NAME
FROM Base_SXZD AS A JOIN T AS B ON A.parentid = B.id
)
insert into #Tmp
select name=(select name from Base_SXZD where id='7197ccfb-f01d-437f-9059-f4b821ebf2e1'),sl = sum(m.sl) from (
select a.id, a.name,count(b.id) as sl from T a
left join jxxt_ajlb b on a.id = b.ajlxid
" + GetIfWhere(all, ajly) + @"
group by a.id,a.name) m

SET @ID = '5090a923-3c1a-4628-95ae-12edf10d41ae'
;WITH T AS
(
SELECT ID , parentid , NAME
FROM Base_SXZD
WHERE ID = @ID
UNION ALL
SELECT A.ID , A.parentid , A.NAME
FROM Base_SXZD AS A JOIN T AS B ON A.parentid = B.id
)
insert into #Tmp
select name=(select name from Base_SXZD where id='5090a923-3c1a-4628-95ae-12edf10d41ae'),sl = sum(m.sl) from (
select a.id, a.name,count(b.id) as sl from T a
left join jxxt_ajlb b on a.id = b.ajlxid
" + GetIfWhere(all, ajly) + @"
group by a.id,a.name) m

SET @ID = '91322101-c2cb-47bd-91ce-69418722d835'
;WITH T AS
(
SELECT ID , parentid , NAME
FROM Base_SXZD
WHERE ID = @ID
UNION ALL
SELECT A.ID , A.parentid , A.NAME
FROM Base_SXZD AS A JOIN T AS B ON A.parentid = B.id
)
insert into #Tmp
select name=(select name from Base_SXZD where id='91322101-c2cb-47bd-91ce-69418722d835'),sl = sum(m.sl) from (
select a.id, a.name,count(b.id) as sl from T a
left join jxxt_ajlb b on a.id = b.ajlxid
" + GetIfWhere(all, ajly) + @"
group by a.id,a.name) m

select ID,name, isnull(sl,0) as ajsl from #Tmp
drop table #Tmp

SQL 树结构统计数据的更多相关文章

  1. SQL语句统计每天、每月、每年的 数据

    SQL语句统计每天.每月.每年的数据 1.每年select year(ordertime) 年,sum(Total) 销售合计from 订单表group by year(ordertime) 2.每月 ...

  2. SQL语句统计每天、每月、每年的数据

    1.每年select year(ordertime) 年,sum(Total) 销售合计from 订单表group by year(ordertime) 2.每月select year(orderti ...

  3. sql server 分组统计数据

    说明:group by是sql中对数据表中的数据进行分组的,在select列表中出现的字段必须全部出现在group by 字段中,出现在聚合函数中的字段在group by中可有可无,没有出现在sele ...

  4. 统计数据方面SQL与HQL

    因为HQL是面向对象的,所以对于统计数据方面使用HQL时不合适的,其实HQL最终还是会转化成SQL语句,项目里使用HQL语句应该是为了标准规范化. 统计的数据:同一个表,同一个字段,不同属性,统计不同 ...

  5. 转载:SQL按照日、周、月、年统计数据的方法

    转载源:http://www.jb51.net/article/42613.htm SQL按照日.周.月.季度.年统计数据的方法 方式一: --按日 select sum(consume),day([ ...

  6. 【转】SQL语句统计每天、每月、每年的数据

    原文:https://www.cnblogs.com/Fooo/p/3435687.html SQL语句统计每天.每月.每年的数据 1.每年select year(ordertime) 年,sum(T ...

  7. sql不重复的查找统计数据(经典)

    例表如下: 表名:MYTEST TID    COL1    COL2     COL3 1           1           A            A2           1     ...

  8. SQL Server定时自动抓取耗时SQL并归档数据发邮件脚本分享

    SQL Server定时自动抓取耗时SQL并归档数据发邮件脚本分享 第一步建库和建表 USE [master] GO CREATE DATABASE [MonitorElapsedHighSQL] G ...

  9. 微软BI 之SSIS 系列 - 使用 SQL Profilling Task (数据探测) 检测数据源数据

    开篇介绍 SQL Profilling Task 可能我们很多人都没有在 SSIS 中真正使用过,所以对于这个控件的用法可能也不太了解.那我们换一个讲法,假设我们有这样的一个需求 - 需要对数据库表中 ...

随机推荐

  1. Django ORM 中的批量操作

    Django ORM 中的批量操作 在Hibenate中,通过批量提交SQL操作,部分地实现了数据库的批量操作.但在Django的ORM中的批量操作却要完美得多,真是一个惊喜. 数据模型定义 首先,定 ...

  2. 如何用Java编写一段代码引发内存泄露

    本文来自StackOverflow问答网站的一个热门讨论:如何用Java编写一段会发生内存泄露的代码. Q:刚才我参加了面试,面试官问我如何写出会发生内存泄露的Java代码.这个问题我一点思路都没有, ...

  3. TextView & EditText

    TextView 1.下划线 textView.getPaint().setFlags(Paint. UNDERLINE_TEXT_FLAG ); //下划线 2.单独做第一步,文字会出现锯齿,要加下 ...

  4. 转载总结 C# 多态(虚方法,抽象,接口实现)

    前言:我们都知道面向对象的三大特性:封装,继承,多态.封装和继承对于初学者而言比较好理解,但要理解多态,尤其是深入理解,初学者往往存在有很多困惑,为什么这样就可以?有时候感觉很不可思议,由此,面向对象 ...

  5. jsDoc注释的规范

    注释以/**  开始     */结束 JSDoc 命令属性 命令名 描述 @param @argument 指定参数名和说明来描述一个函数参数. @return @returns 描述函数的返回值. ...

  6. oscgit

    Gitlab PaaS项目演示 git config --global user.name "你的名字或昵称" git config --global user.email &qu ...

  7. [一位菜鸟的COCOS-2D编程之路]精灵表单的制作以及简易动画的生成

    1.第一步:使用Zwoptex 制作精灵表单 2.制作的表单的名称为 cocos2Dpng,cocos2D.plist: 3.精灵的动画效果 主要分为五部分. // on "init&quo ...

  8. IOS开发常用技术网站

    IOS常用网站:    1.http://www.cocoachina.com    2.http://oschina.net    3.http://code4app.com

  9. 将某个组中的账户移动到新的OU下

    将某个组中的账户移动到新的OU下 #定义组名 $groupname = "testg" #定义新的OU名称 $newou = "OU=oo,OU=Admins,dc=dd ...

  10. Java基础知识强化之多线程笔记05:Java程序运行原理 和 JVM的启动是多线程的吗

    1. Java程序运行原理:     Java 命令会启动Java 虚拟机,启动 JVM,等于启动了一个应用程序,也就是启动了一个进程.该进程会自动启动一个 “主线程” ,然后主线程去调用某个类的 m ...