insert into tb values(select max(to_number(xh))+1,xm,max(lb)+1,sum(xf) from tb);

解决方案 »

  1.   

    将字段xh和lb设置成一个序列SEQ_1、SEQ_2
    然后:
    INSERT INTO TAB_NAME 
    SELECT SEQ_1.NEXTVAL, '11', SEQ_2.NEXTVAL, SUM(XF) FROM TAB_NAME;
      

  2.   

    xh xm lb xf
    1  11 1  1
    2  11 2  2
    3  11 3  3
    4  11 4  3.1
    ..........
    增加
    .........
    5  11 5  9.1xh 是 vachar(2)类型错了,就是xf不能直接用这种方法
    主要现在这个怎么算,应该是用group by 但是不能有其他的信息了
      

  3.   

    insert into tb select max(to_number(xh))+1,xm,max(lb)+1,sum(xf) from tb;
      

  4.   

    因为是按xm 来分组的
    还有很多纪录
    xh xm lb xf
    1  11 a  1
    2  11 b  2
    3  11 c  3
    4  11 d  3.1
    5  22 a  1
    6  22 b  2
    7  22 c  3
    8  22 d  3.1..........
    增加
    9  11 e  9.1
    10  11 e  9.1
      

  5.   

    insert into tab1
    select to_char(max(xh)+rownum),xm,chr(ascii(lb)+1),xf from 
    (select max(xh) xh,xm,max(lb) lb,max(xf) xf from 
    (select xh,xm,lb,sum(xf) over(partition by xm order by rownum) xf from tab1)
    group by xm)