标题:求表间数据更新
只看楼主
fdqzy
Rank: 1
等 级:新手上路
帖 子:354
专家分:0
注 册:2016-8-15
结帖率:76.81%
已结贴  问题点数:14 回复次数:10 
求表间数据更新
表1:
jnh mc
1   m1
2   m2
3   m3

表2:
jnh mc
1   m3
2   m2
3   m1

表3:
jnh mc
1   
2   m2
3   

比较表1和表2,相同记录的mc值更新到表3,不同则为空.表1、表2、表3记录行相同。
谢谢!

搜索更多相关主题的帖子: 为空 数据 更新 记录 相同 
2019-09-09 15:53
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:7 
VFP什么版本

坚守VFP最后的阵地
2019-09-09 18:31
fdqzy
Rank: 1
等 级:新手上路
帖 子:354
专家分:0
注 册:2016-8-15
得分:0 
回复 2楼 sdta
v9.0
2019-09-09 19:10
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
CREATE CURSOR t1 (jnh c(10), mc c(10))
INSERT INTO t1 VALUES ("1", "m1")
INSERT INTO t1 VALUES ("2", "m2")
INSERT INTO t1 VALUES ("3", "m3")
CREATE CURSOR t2 (jnh c(10), mc c(10))
INSERT INTO t2 VALUES ("1", "m3")
INSERT INTO t2 VALUES ("2", "m2")
INSERT INTO t2 VALUES ("3", "m1")
SELECT jnh, SPACE(10) mc FROM t1 INTO CURSOR t3 READWRITE
UPDATE t3 SET mc = tt.mc from (SELECT jnh, mc FROM t1 WHERE jnh + mc in (SELECT jnh + mc FROM t2)) tt WHERE t3.jnh == tt.jnh
SELECT t3
BROWSE

坚守VFP最后的阵地
2019-09-09 19:41
fdqzy
Rank: 1
等 级:新手上路
帖 子:354
专家分:0
注 册:2016-8-15
得分:0 
回复 4楼 sdta
谢谢!
有两个问题请教:
1.jnh是数值型,提示“操作符/操作类型不符”,语句在何处更改?
2,需替换的字段多,应如何进行?
3,表3字段名与表1(表2)时,是一个已进的表,如下不
表3:
jnh mct
1   
2   m2
3   
应如何进行?

[此贴子已经被作者于2019-9-9 20:43编辑过]

2019-09-09 20:19
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:7 
CREATE CURSOR t1 (jnh I, mc c(10))
INSERT INTO t1 VALUES (1, "m1")
INSERT INTO t1 VALUES (2, "m2")
INSERT INTO t1 VALUES (3, "m3")
CREATE CURSOR t2 (jnh I, mc c(10))
INSERT INTO t2 VALUES (1, "m3")
INSERT INTO t2 VALUES (2, "m2")
INSERT INTO t2 VALUES (3, "m1")
CREATE CURSOR t3 (jnh I, mc c(10))
INSERT INTO t3 VALUES (1, "")
INSERT INTO t3 VALUES (2, "")
INSERT INTO t3 VALUES (3, "")

SET RELATION TO RECNO() INTO "t1", RECNO() INTO "t2"
REPLACE t3.mc WITH t1.mc ALL FOR t1.mc==t2.mc IN "t3"
BROWSE
RETURN
2019-09-09 20:41
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
CREATE CURSOR t1 (jnh n(10), mc c(10))
INSERT INTO t1 VALUES (1, "m1")
INSERT INTO t1 VALUES (2, "m2")
INSERT INTO t1 VALUES (3, "m3")
CREATE CURSOR t2 (jnh n(10), mc c(10))
INSERT INTO t2 VALUES (1, "m3")
INSERT INTO t2 VALUES (2, "m2")
INSERT INTO t2 VALUES (3, "m1")
SELECT jnh, SPACE(10) mc FROM t1 INTO CURSOR t3 READWRITE
UPDATE t3 SET mc = tt.mc FROM (SELECT jnh, mc FROM t1 WHERE STR(jnh,10) + mc in (SELECT STR(jnh,10) + mc FROM t2)) tt WHERE t3.jnh == tt.jnh
SELECT t3
BROWSE


要想更好的解决问题,上传原始表

坚守VFP最后的阵地
2019-09-09 20:42
fdqzy
Rank: 1
等 级:新手上路
帖 子:354
专家分:0
注 册:2016-8-15
得分:0 
两表表更新一张表.rar (11.59 KB)


谢谢!
2019-09-09 21:21
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
CLOSE DATABASES
USE 表1 IN 0 ALIAS b1
USE 表2 IN 0 ALIAS b2
USE 表3 IN 0 ALIAS b3
SELECT b3
SET RELATION TO RECNO() INTO  b1, RECNO() INTO b2
FOR i = 2 TO FCOUNT()
    BLANK ALL FIELDS (FIELD(i))
    REPLACE (FIELD(i)) WITH EVALUATE("b1." + FIELD(i, "b1")) FOR EVALUATE("b1." + FIELD(i, "b1")) == EVALUATE("b2." + FIELD(i, "b2"))
ENDFOR
SET RELATION TO
BROWSE

坚守VFP最后的阵地
2019-09-09 21:51
fdqzy
Rank: 1
等 级:新手上路
帖 子:354
专家分:0
注 册:2016-8-15
得分:0 
谢谢!
2019-09-10 08:05



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




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

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