要用多条SQL语句才能完成你的需求。

解决方案 »

  1.   

    好象一条SQL 就够了:)
    SORRY,不是故意卖关子,只是现在时间来不及了。
      

  2.   

    RE:
      HALFDREAM 
      你什么时候有空?
      

  3.   

    SQL7不是有Import数据功能吗,把数据库捣一下不就得了。
      

  4.   

    不好意思,我是个笨人,只能想到这种笨办法,不知合不合你的要求,我用的SQLServer的语句,其他的应该差不多,如果要选择插入B表的话,只要用此语句创建存储过程,传递参数进去,再在插入时加入判断即可。谁有更简单的方法也告诉一下吧。
    declare lmy_cursor CURSOR
    for 
    select b1,b2,b41....b512 from aopen lmy_cursor
    declare @lmy_b1 char
    declare @lmy_b2 char
    declare @lmy_b41 int
    declare @lmy_b42 int
    ...
    ...
    ...
    declare @lmy_512 charfetch next from lmy_cursor into @lmy_b1,....@lmy_b512
    WHILE (@@FETCH_STATUS <> -1)
    begin
       insert into b values(@lmy_b1,@lmy_b2,1,@lmy_b41,@lmy_b51)
       insert into b values(@lmy_b1,@lmy_b2,2,@lmy_b42,@lmy_b52)
       ...
       ...
       ...
       insert into b values(@lmy_b1,@lmy_b2,12,@lmy_b412,@lmy_b512)
    end
    close lmy_cursor
    DEALLOCATE lmy_cursor
      

  5.   

    用一个表辅助计算.
    预先建一个辅助表:
    C    :
    id ,c0, c1 ,c2 ,c3 ,c4,c11,c12
    -----------------------
    0  , 1 , 0  ,0  ,0  ,0          0 , 0
    1   ,0 , 1  , 0,  0,  0  .......0  , 0     
    2   ,0 , 0  , 1,  0,  0  .....  0   ,0
    3   ,0 , 0  , 0,  1,  0  .......0  ,0  
    4   ,0 , 0  ,  0,  0,  1  .....0   ,0
    ..........
    ..........
    11  ,0 , 0  ,  0 , 0 , 0         1 ,0
    12  ,0 , 0   , 0 , 0 ,0  ........0 ,1有了这个表,就可以这样:
    insert B(WARENO,WARENAME,CMONTH,SLJC,JEJC)
    select A.b1,
        A.b2,
        C.id,
        A.b40*C.c0+A.b41*C.c1+....+A.b412*C.c12,
        A.b50*C.c0+A.b51*C.c1+....+A.b512*C.c12
    from A,C
    where C.id = :mouth
    尽管看起来长了一点, 不过总体上还是比较简单的:)
    在调试的时候, 可以先把INSERT那一行去掉看看结果是否正确.