根据县计算市,再根据市计算省,思路很清晰啊
你是想写select语句还是,update统计啊,提供你具体的表结构吧

解决方案 »

  1.   

    设定你的表为T
    字段 省、市、县、数值
    select 省,市,县,sum(数值)
    from T
    group by rollup(省,市,县)
    order by 省,市,县
      

  2.   

    不需要考虑树形结构用connect by 吗
      

  3.   

    不需要考虑树形结构用connect by 吗
      

  4.   

    看你的结构怎么存的了,你这个是固定层级的就3层,不一定非要用connect by的写法
    oracle 中rollup本身就有分层统计的功能
      

  5.   

    select dep1,dep_name,
    (select sum(数量) from 数据表
     where dep1 in (select dep1 from 部门编码表
              start with dep1= 部门编码表.dep1
              connect by prior dep1=superid)
    ) as 数量
    from 部门编码表
      

  6.   

    select A.DEP1,MAX(DEP_NAME) as DEP_NAME,SUM(B.数量) as 数量
    FROM 
    (select 部门编码.*,connect_by_root(dep1) subid
    from 部门编码
    connect by prior superid=dep1) A,数据表 B
    WHERE A.SUBID=B.DEP1
    GROUP BY A.DEP1
      

  7.   


    这个connect_by_root是要拿最底层的DEP是吗
      

  8.   

    这个函数本身是获取根节点的
    我的树形是反向建立的,获取出的根节点就是最底层的dep了
      

  9.   

    谢谢 搞定了,这个思路是对的,我也考虑过这个根节点的方便只考虑了正向,然后想再用connect by 去查询 结果没搞出来