问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

VFP中怎样把同一张表中相同字段的内容合并为一条记录,并删除重复记录...

发布网友 发布时间:2024-03-09 03:21

我来回答

5个回答

热心网友 时间:2024-04-03 14:50

做了一晚上,终于有结果了,我写了4条记录,验证正确。最后的合并结果在一个新的表:新10086.dbf中。

新10086 表的结构与10086表结构相同。所有字段都是字符型。字段b、字段d的宽度要足够。

clear
sele 1
use 10086
copy stru to 新10086
flag=0
xyz=c
b合并值=alltrim(b)
d合并值=alltrim(d)
do while not eof()
skip
if c==xyz
b合并值=b合并值+","+alltrim(b)
d合并值=d合并值+","+alltrim(d)
flag=1
loop
else
if flag=1
sele 2
use 新10086
append blank
replace a with "10086",b with b合并值,c with xyz ,d with d合并值
endif
endif
sele 1
xyz=c
b合并值=alltrim(b)
d合并值=alltrim(d)
flag=0
enddo
sele 2
browse
close table all
cancel

热心网友 时间:2024-04-03 14:55

use 10086
kkk=""
Clear
PUBL mc
kh=1
mm=reccount()
i=FCOUNT()
GO top
DO while kh<mm
GO kh
DIMENSION myarray(i)
SCATTER to myarray(i)
xh1=myarray(1)
FOR j=2 to i
jj=allt(str(j))
zd&jj=""
xh1&jj=myarray(j)
ENDFOR
DO while.not.eof()
IF .not.eof()
Skip
IF mc=xh1
FOR j=2 to i
jj=allt(str(j))
bn=fields(j)
xh1&jj=allt(xh1&jj)+","+allt(&bn)
ENDFOR
Dele
mm=mm-1
ENDIF
ENDIF
ENDDO
FOR j=2 to i
jj=allt(str(j))
bn=fields(j)
REPL &bn with xh1&jj for mc=xh1
ENDFOR
kh=kh+1
ENDDO
PACK
RETURN
这个问题你让我耗费了一天半的时间,脑袋都要炸了

热心网友 时间:2024-04-03 14:58

编程可解决吧。你的问题是要按A和C合并B和D,而且B和D都是字符型的。不知这个理解对不对呢

热心网友 时间:2024-04-03 14:58

dsa

热心网友 时间:2024-04-03 14:55

我这个不需要索引,也不需要将C列相同的项排在一起。已经在电脑上验证过了,完全没问题
use 10086
copy stru to temp &&生成临时文件,存储合并数据
hbbb="" &&保存合并数据的变量
hbdd="" &&保存合并数据的变量
do whil recc()>0
go 1
stor allt(a) to aa
stor allt(c) to cc
stor allt(b) to bb
stor allt(d) to dd
count for allt(A)=aa .and. allt(C)=cc to sc &&计算与第一条记录A列和C列相同的记录条数
if sc=1
dele for allt(A)=aa .and. allt(C)=cc &&删除已经统计过的数据,避免重复统计
pack &&删除已经统计过的数据,避免重复统计
use temp
appe blan
repl A with aa,B with bb,C with cc,D with dd &&向临时数据库中添加统计结果
else
k=1
loca for allt(A)=aa .and. allt(C)=cc
if found()
if sc>1
do whil k<=sc
stor allt(b) to bb
stor allt(d) to dd
dele &&删除已经统计过的数据,避免重复统计
pack &&删除已经统计过的数据,避免重复统计
hbbb=hbbb+","+bb &&合并A列和C列相同的记录的B、D列
hbdd=hbdd+","+dd &&合并A列和C列相同的记录的B、D列
loca for allt(A)=aa .and. allt(C)=cc
k=k+1
endd
endi
use temp
appe blan
repl A with aa,B with subs(allt(hbbb),2,len(allt(hbbb))-1),C with cc,D with subs(allt(hbdd),2,len(allt(hbdd))-1) &&向临时数据库中添加统计结果
hbbb=""
hbdd=""
endi
endi
clos data
use 10086
endd
clos data
dele file 10086.dbf &&注意此处删除了你的原始文件,如果你要保留你的原始文件,请先备份
rena temp.dbf to 10086.dbf &&将临时文件改名为10086.dbf
use 10086
brow
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
备忘录在手机的哪里 刚性消费有哪些 中国经济快速增长的原因 什么是刚性消费 什么叫刚性增长 特别精辟的个性签名(非常经典的个性句子) 特别经典的个性签名(非常惊艳的个性句子) 文艺范十足的个性签名(温柔治愈的个性签名句子) wps文字怎么设置每页头和尾 27岁的女人需要补充哪些营养元素 id改第三次方法 ...年龄。两个表中的姓名字段一样,如何合并成一个表 夏天适合什么口红 夏天适合什么口红颜色 foxpro中如何把两个文本合并在一起 关于vfp中两个字段名完全相同的表的合并 招财猫鱼怎么喂肉?冬天没有活食,肉放冰箱里面拿出来怎么喂?若是喂小鱼... 伊藤美诚比张本智和还输不起!惨遭逆转后不服 争议举动太没礼貌_百度... 微信手机号在24小时内,已绑定两个,已达到限制,不能在绑定其他微信... 微信小号 什么意思 是两个吗 可以同时登陆吗? 微信小号 什么意思 是两个吗 可以同时登陆吗? 微信手机号在24小时内,已绑定两个,已达到限制,不能在绑定其他微信... 微信小号 什么意思 是两个吗 可以同时登陆吗? 微信小号 什么意思 是两个吗 可以同时登陆吗 王曼昱带伤一条腿大逆转,3-2淘汰伊藤美诚,本场比赛双方发挥如何? 女人死缠烂打男人后会有什么后果? 微信手机号在24小时内,已绑定两个,已达到限制,不能在绑定其他微信... 微信手机号在24小时内,已绑定两个,已达到限制,不能在绑定其他微信... 阀型避雷器的泄漏电流,工频放电电压应定期测定,10KV及以下者每年测定一... table里的td竖着怎么弄出来? 甜酒酿汤圆的做法 今天陪儿子在医院打吊水,坐的凳子上有点血的印子,有事吗? ...针管的位置然后就贴胶纸,请问会交叉感染什么传染病?因 第三次强制修改办法是什么? vfp 字符串连接 招联信用付怎么登录? 苹果手机怎么改第三次 怎么改第三次 第三次修改有办法么 怎么修改第三次 汽车透镜调节标准怎么样? 微信手机号在24小时内,已绑定两个,已达到限制,不能在绑定其他微信... 手机号1 24 手机号24小时内绑定了两个被限制 请问什么时候才能重 ... 微信手机号在24小时内,已绑定两个,已达到限制,不能在绑定其他微信... 西江千户苗寨的哪些特色演出值得游客观赏? 如何让一个人痛苦 王艺迪对早田希娜谁赢了 微信手机号在24小时内,已绑定两个,已达到限制,不能在绑定其他微信... ...号在最近24小时内绑定过三个,已达到限制,...24小时后可以再次... ...很想结婚,找他说了想法,但是男友却说不想跟我结婚,我该选择分开还是... 女单半决赛谁赢了