我是在存储过程中使用,需求:
  表 A ,字段 C111,C112,C121,C122,C131,C132..C191,C192,  C211,C212,C221,C222..C291,C292,..C991,C992
  这些字段的构成方式为 CAB1,CAB2 ,A和B 是由另外2张维表提供,就是说 A 和B的值目前最大到 9 ,
  现在我需要 一条语句类似:
     select sum(CA_1),sum(CA_2) from A ; 意思就是说 把表 A 中字段名 C111,C112,C121,C122,C131,C132..C191,C192 统一看着为 C1x1 ,C1x2 来处理, 并对这些字段值求和。

解决方案 »

  1.   

    没怎么看懂
    试一下通过字典表user_tab_columns来取得表字段来拼接SQL语句,是不是完成你想要的
      

  2.   

    我的意思就是想对表中 多个字段名 类似的字段进行 字段值求和。
    把字段名 like C1%1 的都当成  C11 
      

  3.   

    没有明白你的意思我用过动态的SQL例如:open objRs for
    (动态拼接的SQL语句)
      

  4.   

    这样的表感觉只能老老实实的:
    select sum(C111)+sum(C121)+...+sum(C191) from A;
    select sum(C112)+sum(C122)+...+sum(C192) from A;如果有其他的方法,会更麻烦
      

  5.   

    通过视图cols查询到类似的列然后动态的拼sql,通过一个过程即可实现!如有问题,可以提供帮助。
      

  6.   

      你的这个想法和我的差不多,但是主要是牵扯到好几个循环,我闲那样太麻烦,会影响效率。
      loop 读维表1得到 字段名中的第二个字符 A
        loop 字段视图 得到符合要求的原有字段名 CAx1,CAx2 ,并写语句求和  现在有个问题是 我要把最终的所有结果放到一个 游标 中,这样的话,我就不知道该怎么弄了