首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

统计各部门人数,该怎么处理

2013-11-09 
统计各部门人数 也可以说统计子部门人数也要统计父级部门人数呵呵,你太实诚了,贴了那么多的数据,我就模拟

统计各部门人数
 
也可以说统计子部门人数也要统计父级部门人数


呵呵,你太实诚了,贴了那么多的数据,我就模拟了几条数据哈,是这个效果吗:
统计各部门人数,该怎么处理


--drop table t1
--drop table t2

create table t1(
部门ID int, 
部门代码 varchar(20),
上级代码 varchar(10),  
部门名称 varchar(20)
)

insert into t1
select 2,'0101','01','管理部'
union all select 3,'0102','01','市场支持部'
union all select 4,'0103','01','技术部'
union all select 7,'010101','0101','总务课'
union all select 8,'010102','0101','财务课'
union all select 9,'010201','0102','市场企划组'



create table t2
(
人员ID int,  部门ID int,  人员编号 varchar(20)
)

insert into t2
select 2,2,'79503001'
union all select 3,4,'79408005'
union all select 4,7,'70911001'
union all select 5,8,'71002004' 
union all select 6,9,'71002003' 
union all select 7,8,'71002002' 


;with t
as
(
select t1.部门ID, 
       t1.部门代码,
       t1.上级代码,  
       t1.部门名称,
       count(*) as people_count
from t1
left join t2
        on t1.部门ID = t2.部门ID
group by t1.部门ID, 
         t1.部门代码,
         t1.上级代码,  
         t1.部门名称
)

select 部门ID,
       部门代码,
       (select sum(people_count) 
        from t t2 
        where t2.部门代码 like t1.部门代码 +'%') as 人数
from t t1
/*
部门ID部门代码人数
201014
301022
401031
70101011
80101022
90102011
*/

热点排行