| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2541 人关注过本帖
标题:关于dbf文件中数据合并的问题
只看楼主 加入收藏
shyoow
Rank: 2
等 级:论坛游民
帖 子:42
专家分:14
注 册:2013-1-30
结帖率:88.89%
收藏
已结贴  问题点数:20 回复次数:32 
关于dbf文件中数据合并的问题
我有2个dbf文件,分别命名为a.dbf和b.dbf,在a.dbf文件中有2000条记录,而b.dbf文件中只有1000条记录(该1000条记录是2000条记录中的一部分)。b.dbf文件中有一个xh字段在a.dbf中没有。现在要将b.dbf文件中的xh字段数据按照ksbh一一对应填入a.dbf文件中,而a.dbf文件中其他字段内容不变,总记录条数仍然是2000条而不是3000条。请问这个该如何实现?注:1.ksbh是两个表中共有的字段,具有同一性,而且在各自表中具有唯一性。2.b.dbf文件中的1000条记录是从a.dbf2000条数据中抽出来的,是不连续的数据。这个问题困扰我很长时间了,而且以后经常遇到,请各位不吝赐教!感谢!
搜索更多相关主题的帖子: 同一性 如何 
2013-01-31 00:19
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:5 
*---VFP9代码
USE A AGAIN IN 0 ALIAS A
ALTER TABLE A ADD XH C(5) &&5为B表中XH字段的宽度,暂定为字符型。
UPDATE A SET XH=B.XH FROM B WHERE A.KSBH==B.KSBH

坚守VFP最后的阵地
2013-01-31 00:50
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
VFP6 代码
程序代码:
USE A AGAIN IN 0
ALTER TABLE A ADD XH C(5) &&5为B表中XH字段的宽度,暂定为字符型。
USE B AGAIN IN 0
SCAN
   UPDATE A SET XH=B.XH WHERE A.KSBH==B.KSBH
ENDSCAN

坚守VFP最后的阵地
2013-01-31 00:52
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
SQL-SELECT 代码
SELECT A.KSBH,A.字段1,A.字段1,NVL(B.XH,[]) FROM A FULL JOIN B ON A.KSBH==B.KSBH INTO CURSOR TEMPSELECT A.KSBH,A.字段1,A.字段1,NVL(B.XH,[]) FROM A LEFT JOIN B ON A.KSBH==B.KSBH INTO CURSOR TEMP


[ 本帖最后由 sdta 于 2013-1-31 01:01 编辑 ]

坚守VFP最后的阵地
2013-01-31 00:54
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:5 
程序代码:
SELECT 1
USE a
SELECT 2
USE b
FOR I=1 TO RECCOUNT()
    GO I
    SELECT a
    REPLACE xh WITH b.xh FOR ksbh=b.ksbh
    SELECT b
ENDFOR
2013-01-31 00:56
青春无限
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江苏
等 级:贵宾
威 望:24
帖 子:3452
专家分:19340
注 册:2012-3-31
收藏
得分:0 
看看

学 会看代码…学习写程序…学会搞开发…我的目标!呵呵是不是说大话啊!!一切皆可能
2013-01-31 01:36
cxzbzgz
Rank: 8Rank: 8
来 自:云南楚雄
等 级:贵宾
威 望:24
帖 子:298
专家分:808
注 册:2012-6-15
收藏
得分:3 
程序代码:
SELECT 1

 USE a
  INDEX ON ksbh TO ksbh
SELECT 2

 USE b

 GO TOP

 DO whil NOT EOF()
  mksbh=ksbh
  mxh=xh
  SELECT 1
   SEEK mksbh
   IF NOT EOF()
    REPLACE xh WITH mxh
   ENDIF
  SELECT 2

 SKIP
ENDDO 

学习交流VFP,QQ:248561326。
2013-01-31 09:49
shyoow
Rank: 2
等 级:论坛游民
帖 子:42
专家分:14
注 册:2013-1-30
收藏
得分:0 
以下是引用sdta在2013-1-31 00:52:34的发言:

VFP6 代码
USE A AGAIN IN 0
ALTER TABLE A ADD XH C(5) &&5为B表中XH字段的宽度,暂定为字符型。
USE B AGAIN IN 0
SCAN
   UPDATE A SET XH=B.XH WHERE A.KSBH==B.KSBH
ENDSCAN

谢谢版主大力相助!可是总是在vfp6版本里显示‘嵌套错误’呢?

[ 本帖最后由 shyoow 于 2013-1-31 20:20 编辑 ]
2013-01-31 10:57
shyoow
Rank: 2
等 级:论坛游民
帖 子:42
专家分:14
注 册:2013-1-30
收藏
得分:0 
以下是引用tlliqi在2013-1-31 00:56:01的发言:

SELECT 1
USE a
SELECT 2
USE b
FOR I=1 TO RECCOUNT()
    GO I
    SELECT a
    REPLACE xh WITH b.xh FOR ksbh=b.ksbh
    SELECT b
ENDFOR

谢谢!版主您的程序输入后也显示嵌套错误,不知道什么原因!
2013-01-31 11:00
shyoow
Rank: 2
等 级:论坛游民
帖 子:42
专家分:14
注 册:2013-1-30
收藏
得分:0 
以下是引用cxzbzgz在2013-1-31 09:49:32的发言:

SELECT 1
 USE a
  INDEX ON ksbh TO ksbh
SELECT 2
 USE b
 GO TOP
 DO whil NOT EOF()
  mksbh=ksbh
  mxh=xh
  SELECT 1
   SEEK mksbh
   IF NOT EOF()
    REPLACE xh WITH mxh
   ENDIF
  SELECT 2
 SKIP
ENDDO

谢谢你的热心解答!可是显示'交互方式下不能使用此语句'
2013-01-31 11:01
快速回复:关于dbf文件中数据合并的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.031000 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved