两张表
表一:地区表  字段:地区编号 上级编号 地区代码 
6位编码(000000为全国,前两位为省,中间两位为市,最后两位为县)
其中在录入的时候,每次输入两位 地区名称 
VCREGIONNAME 
直接填写本级名称,如:“浙江省杭州富阳市” 直接输入“富阳市”即可, 
 
地区类型 
NUMREGIONTYPE 
0为全国,1为省,2为市,3为县 表2:打印表 字段:地区代码, 送冲数量,冲出数量,邮寄数量,已校对数量
jsp页面,
1、点击全国 统计出每个省的打印总数
2.选择一个省,统计出省下面的市的打印总数
3.选择一个市,统计出市下面的县的打印总数
 

解决方案 »

  1.   

    select sum(送冲数量) 全国打印总数 from t1,t2 where t1.regid = t2.regid 
    and 输入要匹配变量 like substr(t1.regid,1,lenth(t1.regid) - INSTR(t1.regid,'0',1,1))%;
    没有进过测试,不知道行不行
      

  2.   

    --建表
    create table t_area(areacode varchar2(20),parentcode varchar2(20),areaname varchar2(30));
    create table t_print(areacode varchar2(20),ordernum number,printnum number,postnum number,verifynum number);
    --数据
    insert into T_AREA (AREACODE, PARENTCODE, AREANAME)
    values ('000000', '0', '全国');
    insert into T_AREA (AREACODE, PARENTCODE, AREANAME)
    values ('330000', '000000', '浙江');
    insert into T_AREA (AREACODE, PARENTCODE, AREANAME)
    values ('332100', '330000', '杭州');
    insert into T_AREA (AREACODE, PARENTCODE, AREANAME)
    values ('332111', '332100', '临安');
    insert into T_AREA (AREACODE, PARENTCODE, AREANAME)
    values ('440000', '0', '安徽');insert into T_PRINT (AREACODE, ORDERNUM, PRINTNUM, POSTNUM, VERIFYNUM)
    values ('332100', 22, 20, null, null);
    insert into T_PRINT (AREACODE, ORDERNUM, PRINTNUM, POSTNUM, VERIFYNUM)
    values ('332111', 100, 98, null, null);
    commit;
    --查询 指定地市代码 如:330000
    SELECT SUM(a.ordernum) "送冲数",
           SUM(a.printnum) "打印数",
           SUM(a.postnum) "邮寄数",
           SUM(a.verifynum) "校验数"
      FROM t_print a,
           (SELECT t.areacode
              FROM t_area t
             START WITH t.areacode = '330000'
            CONNECT BY PRIOR t.areacode = t.parentcode) b
     WHERE a.areacode = b.areacode AND
           a.areacode <> '330000';
      

  3.   

    树形结构一般都采用oracle提供的SELECT  *           FROM tab
             START WITH fld = 顶级值
            CONNECT BY PRIOR t.fld = t.父结点值
      

  4.   

    可以设计成树形结构 使用ORACLE时可以用 :start with ... CONNECT BY ..
      

  5.   

    select  substr(code,1,2) scode from ×× group by scode 之类不行么
      

  6.   

    两张表 
    表一:地区表  字段:地区编号 上级编号 地区代码 
    6位编码(000000为全国,前两位为省,中间两位为市,最后两位为县) 
    其中在录入的时候,每次输入两位 地区名称 
    VCREGIONNAME 
    直接填写本级名称,如:“浙江省杭州富阳市” 直接输入“富阳市”即可, 地区类型 
    NUMREGIONTYPE 
    0为全国,1为省,2为市,3为县 -------------------
    设计为树形结构,一张表就可以搞定了
    地区编号,上级地区编号,地区名,地区类型(也可以省略点,默认第一级为全国,第二级为省)