日期:2014-05-17 浏览次数:21200 次
select t2.根地域编号, sum(t1.上网时长) from (select 上网时长.上网时长, 地域表.编号 地域编号 from 上网时长 left join 用户表 on 上网时长.用户编号=用户表.编号 left join 地域表 on 用户表.所属地区编号=地域表.编号) t1 join (select 地域表.编号 地域编号, 地域表.名称 地域名称, connect_by_root 地域表.编号 根地域编号 from 地域表 start with 隶属地域 = -1 connect by prior 编号=隶属地域) t2 on t1.地域编号=t2.地域编号 group by t2.根地域编号;
------解决方案--------------------
with t as (
select c.time,b.areaid from area a,suser b ,nettime c
where a.id=b.areaid and b.id=c.userid)
select id,name,(select sum(time) from t where
t where t.id in (select id from area b start with b.id=a.id
prior b.sjid=b.id )) counttime
from area a where a.sjid=-1