| 发表于:2007-03-13 21:30:54 楼主 |
请教大家该问题如何用存储过程实现? 我表test1里原始数据格式为: hm rq xx -------------------------------------------- a 20070301 m,n,t b 20070302 f,g,h a 20070305 ,n,t a 20070308 h,n,t,w ........ 我通过相关的程序把test1表的数据已经转到表test2里,并增加了相应的逗号顺序列,格式如下: hm rq xh no --------------------------------------------------------- a 20070301 m 1 a 20070301 n 2 a 20070301 t 3 b 20070302 f 1 b 20070302 g 2 b 20070302 h 3 a 20070305 1 a 20070305 n 2 a 20070305 t 3 a 20070308 h 1 a 20070308 n 2 a 20070308 t 3 a 20070308 w 4 .............. 上面的东西已经实现了, 下面我想请大家帮助存储过程要做的东西是什么呢,如test1表里的hm字段值只有一条数据如hm为b,其在表test2里的相关值一直 保持不变,就直接把test2里的hm为b的所有相关 信息放到表test3里,当然要判断test2表里hm为b的这里情况,我想可以根据rq和hm来判断只有一条。 需要说明的是,在表test3里增加两个字段ksrq和jsrq(对于表test2里的hm对应的xh的ksrq我们默认 其为20061201,默认jsrq的值为20071201)如果某号码的对于表test1里hm字段值为多于一条以上的,就需要依照表test2里的相关xh对应的no信息来判断其变化, 并随后修改其ksrq或jsrq的值,如号码hm=a其在表1记录 hm rq xx -------------------------------------------- a 20070301 m,n,t 到20070305的时候变成 hm rq xx -------------------------------------------- a 20070305 ,n,t 也就是号码a的xx字段的第一逗号位置相关信息m在20070305取消掉了, 其在test2里的对应记录为 hm rq xh no --------------------------------------------------------- a 20070301 m 1 a 20070301 n 2 a 20070301 t 3 、、、、 a 20070305 1 a 20070305 n 2 a 20070305 t 3 那么我们在表test3里就插如相关信息并把jsrq的相关信息更新为 hm rq xx ksrq jsrq ---------------------------------------------------- a 20070301 m 20061201 20070305 a 20070301 n 20061201 20071201 a 20070301 t 20061201 20071201 到20070308的时候在表test1里是 hm rq xx -------------------------------------------- a 20070308 h,n,t,w 也就是到20070308的时候,hm等于a的相关xx信息的第一个位置和第四个位置增加了新的信息, 其在test2里的对应记录为 hm rq xh no --------------------------------------------------------- a 20070301 m 1 a 20070301 n 2 a 20070301 t 3 、、、、 a 20070305 1 a 20070305 n 2 a 20070305 t 3 a 20070308 h 1 a 20070308 n 2 a 20070308 t 3 a 20070308 w 4 ---- 新增加的第一个位置和第四个位置的ksrq都应该为 20070308,jsrq我们默认为20071201。 也就是 最后test3表的数据结果格式为:(当然别忘记了把hm=b的没放进来,其在表test1里只有一条记录,其ksrq和jsrq上面已经说了,没变化用默认的值) hm rq xx ksrq jsrq --------------------------------------------------------------- a 20070301 m 20061201 20070305 a 20070301 n 20061201 20071201 a 20070301 t 20061201 20071201 a 20070301 h 20070308 20071201 a 20070301 w 20070308 20071201 b 20070302 f 20061201 20071201 b 20070302 g 20061201 20071201 b 20070302 h 20061201 20071201 。。。。。。。 说白了,也就是根据表test2里的同一个hm多次循环,依照字段no(逗号位置序号)来对test3表进行插入或更新操作, 我这里为什么要提下test1表是为了让大家更明白我的意思,实际上只需要从test2到test3表的转换。 请各位指点下,如何用存储过程实现?谢谢大家了,分只有这么多了,下次再多给各位写,谢谢! |
|
|
|
|