加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

Oracle 层次树统计 汇总

(2012-10-20 18:01:14)
标签:

杂谈

统计部门的员工个数(员工个数=本部门人数+下级部门人数) 

部门表: 
http://dl.iteye.com/upload/attachment/242895/68da1240-04d9-388a-9ebd-b110c60f4dbd.jpg层次树统计 汇总" TITLE="Oracle 层次树统计 汇总" />  

员工表: 

http://dl.iteye.com/upload/attachment/242897/66a6a769-9c4a-3e2a-8cd4-6ff5d558d6fc.jpg层次树统计 汇总" TITLE="Oracle 层次树统计 汇总" />  


sql 语句: 

Sql代码  http://chzhxu.iteye.com/images/icon_star.png层次树统计 汇总" />
  1. with temp as    
  2.   select t1.deptid as id, t1.supdeptid parent, num, level levs,t1.deptname     
  3.     from dept t1     
  4.     left join (select deptid, count(t.deptid) num     
  5.                  from emp     
  6.                 group by t.deptid) t2 on t1.deptid t2.deptid     
  7.    start with t1.supdeptid is null  
  8.   connect by prior t1.deptid t1.supdeptid)     
  9.     select lpad('levs, ')||id as id,lpad('levs, ')||deptname as deptname,     
  10.            (select nvl(num, 0) from temp where id t.id)     
  11.            (select nvl(sum(num), 0)     
  12.               from temp    
  13.             connect by parent prior id     
  14.              start with parent t.id) cnt     
  15.       from temp   


查询结果: 


http://dl.iteye.com/upload/attachment/242900/e38af876-12ed-3f9e-8d77-7cb5d67d8ab2.jpg层次树统计 汇总" TITLE="Oracle 层次树统计 汇总" />  

oracle10g sql语句: 
Sql代码  http://chzhxu.iteye.com/images/icon_star.png层次树统计 汇总" />
  1. select a.root as id, nvl(sum(b.num), 0) num  
  2.   from (select id, fid, connect_by_root(id) root  
  3.           from (select d.deptid as id, d.supdepid as fid from dept start with d.supdepid is null  
  4.   connect by prior d.deptid d.supdepid)  
  5.         connect by prior id fid)  
  6.   left join (select deptid, count(t.deptid) num from emp group by t.deptid) on a.id  
  7.                                                                                    b.deptid  
  8.  group by root  
  9.  order by root;  

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有