现在有一个财务报表,其中有如下项目:01-期初余额、0101-现金、0102-银行存款、0103-其他 等 ,其中“01-期初余额”是父级,其他项目是子集, 员工按照子级上报数据; 查询展现时,不仅要显示子级而且需要展现父级汇总值,如下:
上报数据: 
项目            值
01-期初余额
0101-现金       100           
0102-银行存款   200 
0103-其他       300
展现:
项目            值
01-期初余额     600
0101-现金       100           
0102-银行存款   200 
0103-其他       300报表中有很多项目,有的项目之间存在3、4层层级关系,如何实现?
         

解决方案 »

  1.   


    --1 新建一个表 保存两项内容 (一般系统都会存在这个配置表)
    create table tmp_tab as
      select distinct substr(项目,1,instr(项目,'-',1)-1) id,
                      substr(项目,instr(项目,'-',1)+1) name
        from 表1;--2 查询你想要的数据
    select t2.id||'-'||t2.name,sum(nvl(表1.值,0))
      from 表1,tmp_tab t2
     where 表1.项目 like t2.id||'%';