从一个表向另外一个表复制行

twn_ryjffa 表名

 

insert into twn_ryjffa (wk_year, getsure_unit_no…xjzbt)

   select swk_year,

     getsure_unit_no,

     insure_vol,

     insure_level,

     insure_itype,

     grjn,

     zybt,

     sjbt,

     dsbt,

     xjbt,

     zyzbt,

     sjzbt,

     dszbt,

     xjzbt

     from twn_ryjffa

     where wk_year = newyear and getsure_unit_no = sgetsure_unit_no;

 

因为是复制所以即全列,“(wk_year, getsure_unit_no…xjzbt)”是不用写的,为了大家更容易理解我才写的。

insert into twn_ryjffa  from twn_ryjffa 可以表名是自身复制。但并不是所以列值都一样,可以看见swk_year取代了复制过来的wk_year

其实在前面 我还写了一条:newyear := swk_year - 1 然后后面条件中可以看见where wk_year = newyear 意思是:当翻年后,会有新的数据需要记录,但今年的数据是建立在以往的数据基础之上的,所以手动一项项填上去不科学,当然了,软件也是客户用来用的,让他们一个个添加更是打死也不愿意。

wk_year 指的是年份,swk_year指要添加的年份,newyear := swk_year – 1即把去年的年份表数据复制到今年的表中。但并是不全部复制,毕竟今年的的年份是新的,所以swk_year取代了wk_yea的位置。

当表复制后,就可以对新表进行有针对的修改了。