有一个A表(10年来每天10条的销售记录),字段有ID(员工号),NAME(名称),现在从A表查出ID,NAME;插入B表,B表有字段ID,NAME,SALNOTE(销售记录).假定销售记录是传入的10年来销售额,一维数组.ID是2个表的primary key.怎样可以顺序插入?
没有固定的开始日期(开始日期由接口传入).(假设从1997-1-1到2006-12-31,怎么样能比较高效率的操作?)

解决方案 »

  1.   

    我也在想,还没写出来,也没做数据.
    一维数组,比如:1997-1-1到2006-12-31,就是长度为3652的一维数组,应该对应插入表B的SALNOTE字段
      

  2.   

    非常抱歉,传入的应该是一个table,里面有ID,DATE,SALNOTE,可以按照要求排列.
      

  3.   

    发现写的很乱,从新说下吧:表A有ID,NAME,有对应数据,primary key是ID
    表B有ID,NAME,SALNOTE,DATE,新表作成,SALNOTE和NAME字段空,primary key是ID和DATE.现在从weblogic传入一个table,按日期排列,有ID,DATE,SALNOTE,有对应数据.想按照传入的table的数据join表A,插入到表B中.我好象有点傻,直接拿table的count做循环是不是就行了...不用考虑10年中有几个润年的问题...也不用考虑每个月有几天...问的冒失了,郁闷.
      

  4.   

    现在从weblogic传入一个table??还真是没看懂.如果是插入数据.有对应主键的update分两步:
    1,update存在的.
    update B
    set col = b.col
    from A,b where a.主键 = b.主键2,insert 
    insert into b (对应字段) select 对应字段 from A where 主键 not in (select 主键 from A)
      

  5.   


    --两表数据关联的UPDATE
    表tb1及数据如下:
            ID          A          B
    ---------- ---------- ----------
             1         10         20
             2          1          2
             3          3          2表tb2及数据如下:
            ID          A          B
    ---------- ---------- ----------
             1         10         20
             2         10         20根据表tb2的id更新表tb1对应的a,b的值。update tb1 set (a,b) = (select a,b from tb2 where id = tb1.id) where id in (select distinct id from tb2)        ID          A          B
    ---------- ---------- ----------
             1         10         20
             2         10         20
             3          3          2
    ---------------------------------------------------------------------------------------------------------
    表tb2及数据如下:
            ID          A          B
    ---------- ---------- ----------
             1         10         20
             2         10         20
             3          3          2
             1         20         40
             2         20         40根据ID分组求A,B的和,然后更新表tb1update tb1 set (a,b) = (select sum(a),sum(b) from tb2 where id = tb1.id) where id in (select distinct id from tb2)        ID          A          B
    ---------- ---------- ----------
             1         30         60
             2         30         60