有3张表  表A  和表B  和表C
表A (编码表)
A01(镇)vr2        A02(户编号)           
0001              0002
0002              0135

表B(家庭表)
B01(家庭编号)   B02(户编号)   B03(户主名)        B04(镇)    B05(内部家庭号)  B06(户内最大人编号) 
000001            0001          张3                0001       100101               02
000002            0002          李4                0001       100201              03
000003            0002          王5                0001       100201               02

表C(个人表)C01(家庭编号)  C02(户编号)    C03(个人姓名)    C04(镇)      C05(内部个人号 家庭号+0?) C06(户内人编号) C07(个人编号)
000001           0001           张3              0001         10010101                     01       N0000001
000001           0001           张4              0001         10010102                     02       N0000002
000001           0001           张5              0001         10010102                     02       N0000003现在这3张表的数据出了2个问题。数据重复
1.表B的户编号应该自动从表A中去取并自动增加。但是由于表A的A02字段未设置为最大。导致新增的表B的户编号出现重复
我想修正为:
表B重复的数据B02 去取最大的A02+1,并跟新A表的最大编号.
表B的B05 跟新为重新获取的B02+01
表C跟新C02 户编号取最大的A02+1 
       C05 跟新为最新的B05+后续具体的C06
2.表C由于表B的最大户内编号有部分数据未设置最大,导致表C的C05出现重复。表C跟新 中重复的C05 根据最大的C07 跟新为max(C06)+1   
C01(家庭编号)  C02(户编号)    C03(个人姓名)    C04(镇)      C05(内部个人号 家庭号+0?) C06(户内人编号) C07(个人编号)
000001           0001           张3              0001         10010101                     01       N0000001
000001           0001           张4              0001         10010102                     02       N0000002
000001           0001           张5              0001         10010103                     03       N0000003
请问用过程如何调整?这个问题比较复杂。可以分为2个过程解决。
请各位朋友帮帮忙!!!太头痛了!

解决方案 »

  1.   


    不存在完全重复的。C07(个人编号)是唯一主键。如果出现重复的话。取相同最小的
    000001 0001 张3 0001 100101 02  00000001
    000002 0002 李4 0001 100201 03  00000002
    000003 0002 王5 0001 100201 02  00000003
    000001 0003 张3 0001 100101 02  00000004
    000002 0003 李4 0001 100201 03  00000005
    000003 0004 王5 0001 100201 02  00000006
    就向上面那样。是vr2类型可以转换为数字类型 
      

  2.   

    我可能没写清楚:内部家庭号=A01+A02
    如果家庭出现重复的话,B表要到A表中去取最大的。例如李四家和王五家重复,先取A01(镇)的最大户编号A02
    A02+1后,跟新为0003
    B表王5 0001 00010002跟新为00010003
    同时C表也有1个王5,而且还有家庭成员原来是0001000201.0001000202.0001000203
    现在跟新为0001000301.0001000302.0001000303
    跟新的原则就是按家庭编号的大小来跟新,家庭编号是唯一主键。000001 0001 张3 0001 00010001 02       --- 
    000002 0002 李4 0001 00010002 03       ---  
    000003 0002 王5 0001 00010002 04       ---  
    000004 0003 张1 0001 00010002 05       ---     
    000005 0003 李1 0001 00010001 06       ---
    000006 0004 王2 0001 00020001 07      ---
    000007 0004 王3 0001 00020001 08       ---这张是家庭表
      

  3.   

    B表原:
    000002 0002 李4 0001 00020002 03
    000003 0002 王5 0001 00020002 02
    B表更新后应该变为:
    000002 0002 李4 0001 10020002 03
    000003 0135 王5 0001 10020136 02
    C表原来是:
    000002 0002 李4 0001 1002000201 01 0000001
    000002 0002 李5 0001 1002000202 02 0000002
    000003 0002 李6 0001 1002000203 03 0000003
    000003 0002 王5 0001 1002000201 01 0000004
    000003 0002 王6 0001 1002000202 02 0000005
    C表变更后:
    000002 0002 李4 0001 1002000201 01 0000001
    000002 0002 李5 0001 1002000202 02 0000002
    000003 0002 李6 0001 1002000203 03 0000003
    000003 0136 王5 0001 1002013601 01 0000004
    000003 0136 王6 0001 1002013602 02 0000005
      

  4.   

    表原:
    000002 0002 李4 0001 00020002 03
    000003 0002 王5 0001 00020002 02
    B表更新后应该变为:
    000002 0002 李4 0001 10020002 03
    000003 0136 王5 0001 10020136 02
    C表原来是:
    000002 0002 李4 0001 1002000201 01 0000001
    000002 0002 李5 0001 1002000202 02 0000002
    000003 0002 李6 0001 1002000203 03 0000003
    000003 0002 王5 0001 1002000201 01 0000004
    000003 0002 王6 0001 1002000202 02 0000005
    C表变更后:
    000002 0002 李4 0001 1002000201 01 0000001
    000002 0002 李5 0001 1002000202 02 0000002
    000003 0002 李6 0001 1002000203 03 0000003
    000003 0136 王5 0001 1002013601 01 0000004
    000003 0136 王6 0001 1002013602 02 0000005