标题:大神们,求助啊!两个表中查找相同的数据——姓名!
只看楼主
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
以下是引用yilance在2021-5-15 11:59:54的发言:

只不过如果可以是
毕业生总表中的姓名更改后的序号是这样的就完美了

   学生表                        毕业生总表
标记    序号   xm              序号           xm
        444    陈浩          444,685,701   陈浩
        685    陈浩          444,685,701   陈浩
        701    陈浩

这种结果又不一样的,如果学生表只有一个“444 陈浩”,毕业生总表就有两个“444 陈浩”

程序代码:
SELECT 0 
USE 学生表 ALIAS a
SELECT 0
USE 毕业生总表 ALIAS b
BLANK FIELDS 序号 ALL 
**ALTER TABLE b ALTER COLUMN 序号 C(20)
SELECT DISTINCT 序号, xm FROM b INTO CURSOR tmp READWRITE 
SELECT tmp
INDEX on xm TAG xm
SELECT a 
SET RELATION TO xm INTO "tmp"
REPLACE ALL tmp.序号 WITH tmp.序号-LTRIM(a.序号)-","
SELECT b 
SET RELATION TO xm INTO "tmp"
REPLACE ALL b.序号 WITH tmp.序号
SELECT 序号,xm FROM b WHERE !EMPTY(序号) ORDER BY xm

2021-05-15 14:49
yilance
Rank: 1
等 级:新手上路
帖 子:117
专家分:4
注 册:2010-4-21
得分:0 
以下是引用吹水佬在2021-5-15 14:49:53的发言:


这种结果又不一样的,如果学生表只有一个“444 陈浩”,毕业生总表就有两个“444 陈浩”

SELECT 0
USE 学生表 ALIAS a
SELECT 0
USE 毕业生总表 ALIAS b
BLANK FIELDS 序号 ALL
**ALTER TABLE b ALTER COLUMN 序号 C(20)
SELECT DISTINCT 序号, xm FROM b INTO CURSOR tmp READWRITE
SELECT tmp
INDEX on xm TAG xm
SELECT a
SET RELATION TO xm INTO "tmp"
REPLACE ALL tmp.序号 WITH tmp.序号-LTRIM(a.序号)-","
SELECT b
SET RELATION TO xm INTO "tmp"
REPLACE ALL b.序号 WITH tmp.序号
SELECT 序号,xm FROM b WHERE !EMPTY(序号) ORDER BY xm

亲爱的版主:
我加了个出生日期再次比对,这样的话就可以更加确定是否是同一个人,您的上面代码可否修改一下实现呢
2021-05-15 20:50
yilance
Rank: 1
等 级:新手上路
帖 子:117
专家分:4
注 册:2010-4-21
得分:0 
刚刚用了我自己修改过的表单
发现还是有一些问题
不能完全正确的检测同来
比如名字是两个字的,重名的学生,还是出错的
不知道是哪里的原因
2021-05-15 21:43
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
以下是引用yilance在2021-5-15 20:50:59的发言:


亲爱的版主:
我加了个出生日期再次比对,这样的话就可以更加确定是否是同一个人,您的上面代码可否修改一下实现呢

索引相关表达式改改就可以:
INDEX on xm+出生日期 TAG xm

SET RELATION TO xm+出生日期 INTO "tmp"
2021-05-15 23:06
yilance
Rank: 1
等 级:新手上路
帖 子:117
专家分:4
注 册:2010-4-21
得分:0 
回复 44楼 吹水佬
亲爱的版主:
可否再帮我看一眼,我这样增加的是对的吧?
为何我一运行就出现这样的错误啊?(两张表都己经增加了出生日期字段)

2021-05-15 23:41
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
回复 45楼 yilance
给表数据测试
2021-05-16 04:35
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
以下是引用yilance在2021-5-15 23:41:19的发言:

亲爱的版主:
可否再帮我看一眼,我这样增加的是对的吧?
为何我一运行就出现这样的错误啊?(两张表都己经增加了出生日期字段)

readwrite VFP6中没有的参数,必须在VFP9中运行才能正常。

坚守VFP最后的阵地
2021-05-16 09:12
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
以下是引用yilance在2021-5-15 08:53:37的发言:

我不是这样的目的
可能您还没有明白我的意思
我是想找到两张表中相同字段的相同记录

是要找到学生表中的姓名在毕业生总表中出现的位置,不是找到重复的次数

只是告诉你表中有相同姓名的事实

坚守VFP最后的阵地
2021-05-16 09:13
yilance
Rank: 1
等 级:新手上路
帖 子:117
专家分:4
注 册:2010-4-21
得分:0 
回复 46楼 吹水佬
刚刚看了sdta版主的回复,可能我用的是VFP6
我来更换一下9试试看
2021-05-16 09:39
yilance
Rank: 1
等 级:新手上路
帖 子:117
专家分:4
注 册:2010-4-21
得分:0 
回复 48楼 sdta
谢谢!
你想的周到
我的表单运行后发现学生表中有重名的学生会出问题
不能完全比对出来
2021-05-16 09:41



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-505739-1-1.html




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

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