有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个过程解决。
请各位朋友帮帮忙!!!太头痛了!
表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个过程解决。
请各位朋友帮帮忙!!!太头痛了!
解决方案 »
- 终于做完了oracle10g for win32的简装版(共50M)
- 关于oracle中用户授权问题
- 请问:oracle10g客户端不能安装
- 9i,已经有几个表的SQL,能不能想SQL SERVER中一起执行建表,而不是一个一个的建?
- 新手求助~~游标控制循环问题~
- 这句sql有什么问题,帮忙看一下,谢了
- 怎样删除一个用户中的所有表,再将备份的数据库恢复到该用户中?
- 问题:用windows2000客户端启动linux下oracle817的OEM,急!!!在线等待!!!!!
- 存储过程中多个临时表操作问题
- 我的oracle为什么进不去了。 什么叫shared mamory realm does not exist?oracle not available 是什么?
- 求,已知一张表,如何查找与它表结构相同的其它表
- oracle next_day函数
不存在完全重复的。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类型可以转换为数字类型
如果家庭出现重复的话,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 ---这张是家庭表
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
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