请教数据替换
现有表1(500行,6列),其中的每个数据值都与表2(24行,3列)的第一列中的某个数据值相等.现要求表1的第一行的6个值分别与表2的第一列的值相比较,若表1的第一行的第一个值与表2的第一列的某个值相同,则将表2中该值所在行的列2、列3的值写入到结果表中的第一、二列;当表1的第一行的第二个值与表2的第一列的某个值相同,则将表2中该值所在行的列2、列3的值写入到结果表中的第三、四列,依此类推,当表1的第一行的第六个值与表2的第一列的某个值相同,则将表2中该值所在行的列2、列3的值写入到结果表中的第十一、十二列。再依次作表1第二行的比较,直至表1比较完为止。
为说明问题,举例如下
表1的第一行的第一个数为2305,这2305在表2的第一列中的第1行,而表2中2305后面的二个数为1、48,则就把1、48写入到结果表的第一行的第1、2列,表1的第一行的第二个数为1201,这1201在表2的第一列中的第24行,而表2中1201后面的二个数为24、25,则就把24、25写入到结果表的第一行的第3、4列。。。。,表1的第一行的第六个数为1345,这1345在表2的第一列中的第16行,而表2中1345后面的二个数为16、33,则就把16、33写入到结果表的第一行的第11、12列;依此类推,谢谢(表1、表2和替换后的结果表的第一行样式贴上,但贴上后有点变形了,表及程序文件在压缩包中
替换请教.rar
(4.23 KB)
)表1 表2 结果表
列1 列2 列3 列4 列5 列6 列1 列2 列3 列1 列2 列3 列4 列5 列6 列7 列8 列9 列10 列11 列12
2305 1201 1225 2041 1565 1345 2305 1 48 1 48 24 25 21 28 4 45 11 38 16 33
部分代码如下:
CLEAR
CLOSE all
SET SAFETY OFF
set talk off
*------------------
SELECT 1
USE 表1
HS1=RECCOUNT()
LS1=FCOUNT()
DIMENSION b1(hs1,ls1)
select * from 表1 into array b1
USE 表2
HS2=RECCOUNT()
LS2=FCOUNT()
DIMENSION b2(hs2,ls2)
select * from 表2 into array b2
*-------------------
USE 结果表
PACK
ZAP
APPEND BLANK
FOR i=1 TO 23
*--以下需用替换的代码,但组织不好,请先生指点,谢谢
REPLACE ('列'+ALLTRIM(STR(i))) WITH b2(i,1)
REPLACE ('列'+ALLTRIM(STR(i+1))) WITH b2(i,2)
APPEND BLANK
endfor
*-------------------
?' 本次运行结束'