"把符合a1>10的记录中的a2字段的值累加起来"这样整个表只能得到一个值
“添到表b的b字段里”什么意思啊?是更改吧?我想你的a表是这样的吧
QL> select * from aa;       A1         A2       CODE
--------- ---------- ----------
        1          2          1
       15          3          1
       20          4          1
       20          1          2
要以CODE分组统计A2字段的sum值吧?然后再更新B表的B字段
但是B表的CODE必须是唯一的
SQL> select * from bb;(这里B表的A2就是你说的B的b字段)        A1         A2       CODE
---------- ---------- ----------
         0          0          1
         0          0          2UPDATE BB B SET B.A2=(SELECT SUM(A.A2) FROM AA A WHERE A.CODE=B.CODE AND A.A1>10 GROUP BY A.CODE);
COMMIT;SQL> SELECT * FROM BB;        A1         A2       CODE
---------- ---------- ----------
         0          7          1
         0          1          2
是这样吗?

解决方案 »

  1.   

    你现在看我这么写对吗?
    create or replace procedure pro_sys_db_new
      IS TOTAL_cnyh_num,TOTAL_cnyh_sum
    BEGIN   SELECT COUNT(*)
       INTO TOTAL_cnyh_num
       FROM AA
       WHERE  A2>'0' AND 
       A.CODE =B.CODE,   SELECT SUM(A2)
       INTO TOTAL_cnyh_sum
       FROM AA
       WHERE  A2>'0' AND 
       A.CODE =B.CODE,
       
      UPDATE SYSTEM_DB_NEW 
      SET cnyh_num=:TOTAL_cnyh_num
      where code = '11';
    END;
        TOTAL_cnyh_num  NUMBER;
    UPDATE BB B SET B.A2=(SELECT SUM(A.A2) FROM AA A WHERE A.CODE=B.CODE AND A.A1>10 GROUP BY A.CODE);
    谢谢回答!
      

  2.   

    我同意你定义的表结构,我就在你给出的表结构需要写一个很相似的过程,但是编译总出错
    想让你看看这么写对不对
    你现在看我这么写对吗?
    create or replace procedure pro_sys_db_new
      IS TOTAL_cnyh_num number; //两个变量
         TOTAL_cnyh_sum number;
    BEGIN   SELECT COUNT(*)
       INTO TOTAL_cnyh_num
       FROM AA
       WHERE  A2>'0' AND 
       AA.CODE =BB.CODE,  //将统计结果给变量   SELECT SUM(A2)
       INTO TOTAL_cnyh_sum
       FROM AA
       WHERE  A2>'0' AND 
       AA.CODE =BB.CODE,  //将统计结果给变量
       
      UPDATE BB 
      SET A2=:TOTAL_cnyh_num, A1=:TOTAL_cnyh_sum,
      where code = '11';  //更新BB表的A1和A2字段,也是过程的目的
    END;
      

  3.   

    你另外一个问题已经给解决了,你现在问题似乎好像是另外一个问题,如下,我有点糊涂了
    http://community.csdn.net/Expert/topic/3505/3505383.xml?temp=.5456507好像一会儿触发器,一会儿过程,按照我的理解,如果是对的,一句SQL语句就OK了
    你的过程中的SQL语句是要以分号结束的,不是逗号,刚才已经和你说了^_^