deptcode deptname supdeptcode ep
10 杭州 0 企业1
1001 西湖区 10 企业2
1002 下城区 10 企业320 绍兴 0 企业4
2001 案件区 20 企业5
我想得到的结果单位 企业数
杭州 3
西湖区 1
下城区 1绍兴 2
案件区 1 就是统计树节点下面节点的所有的和?
高手赐教!
10 杭州 0 企业1
1001 西湖区 10 企业2
1002 下城区 10 企业320 绍兴 0 企业4
2001 案件区 20 企业5
我想得到的结果单位 企业数
杭州 3
西湖区 1
下城区 1绍兴 2
案件区 1 就是统计树节点下面节点的所有的和?
高手赐教!
select t1.deptcode,
t1.deptname,(
select count(distinct ep)
from tablename t2
start with deptcode = t1.deptcode
connect by prior deptcode = supdeptcode
) as ep_count
from tablename t1
group by t1.deptcode,t1.deptname
order by rpad(t1.deptcode,4,0);
DEPTCODE DEPTNAME EP_COUNT
---------- -------- ----------
10 杭州 3
1001 西湖区 1
1002 下城区 1
20 绍兴 2
2001 案件区 1
2 UNION ALL
3 select '1001' id,'西湖區' NAME,10 code,'企業2' ERP FROM DUAL
4 UNION ALL
5 select '1002' id,'下城區' NAME,10 code,'企業3' ERP FROM DUAL
6 UNION ALL
7 select '20' id,'紹興' NAME,0 code,'企業4' ERP FROM DUAL
8 UNION ALL
9 select '2001' id,'案件區' NAME,20 code,'企業5' ERP FROM DUAL
10 )
11 select ID,lpad(' ',level*2)||name name from a
12 start with code=0
13 connect by code=prior id
14 /
ID NAME
---- --------------------------------------------------------------------------------
10 杭州
1001 西湖區
1002 下城區
20 紹興
2001 案件區
但是統計還是有問題啊!還望高人指點!