| 网站首页 | 业界新闻 | 群组 | 人才 | 技术文章 | 下载频道 | 博客 | 代码贴 | 编程论坛
共有 284 人关注过本帖
标题:两表快速替换的求助
只看楼主 收藏
yewxj
Rank: 2
等 级:论坛游民
帖 子:49
专家分:42
注 册:2015-6-18
结帖率:80%
  已结贴   问题点数:20  回复次数:9   
两表快速替换的求助
CREATE CURSOR t1 (f1 C(5), f2 C(5), f3 I)
INSERT INTO t1 VALUES ('9', '2', 0)
INSERT INTO t1 VALUES ('9', '2', 0)
INSERT INTO t1 VALUES ('2', '1', 0)
INSERT INTO t1 VALUES ('9', '2', 10)
INDEX on f1+f2 TAG f1f2
CREATE CURSOR t2 (f1 C(5), f2 C(5), f3 I)
INSERT INTO t2 VALUES ('1', '2', 1)
INSERT INTO t2 VALUES ('2', '2', 2)
INSERT INTO t2 VALUES ('3', '2', 2)
INSERT INTO t2 VALUES ('9', '2', 3)
SELECT t2
SET RELATION TO f1+f2 INTO "t1"
REPLACE t1.f3 WITH t2.f3 ALL FOR t1.f3=0
SELECT t1
BROWSE


请问老师,上面语句只替换了第一个满足条件的记录,如果要替换全部满足条件的记录,需要怎样修改?


[此贴子已经被作者于2017-9-13 23:40编辑过]

附件: 您没有浏览附件的权限,请 登录注册
2017-09-13 23:02
sdta
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:146
帖 子:6821
专家分:15468
注 册:2012-2-5
  得分:0 
全部条件列出来看看

QQ:243688667
2017-09-13 23:20
yewxj
Rank: 2
等 级:论坛游民
帖 子:49
专家分:42
注 册:2015-6-18
  得分:0 
回复 2楼 sdta
如t1表 f1,f2 与 t2 表f1,f2 相等,且t1表的f3是0,则t1所有符合前面条件的记录的f3,都用t2表的f3值替换

[此贴子已经被作者于2017-9-13 23:43编辑过]

2017-09-13 23:35
sdta
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:146
帖 子:6821
专家分:15468
注 册:2012-2-5
  得分:0 
答非所问

QQ:243688667
2017-09-13 23:40
yewxj
Rank: 2
等 级:论坛游民
帖 子:49
专家分:42
注 册:2015-6-18
  得分:0 
回复 4楼 sdta
不好意思,我是新手,不知道这样回答是不是正确的,如t1表 f1,f2 与 t2 表f1,f2 相等,且t1表的f3是0,则t1所有符合前面条件的记录的f3,都用t2表的f3值替换
2017-09-13 23:44
sdta
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:146
帖 子:6821
专家分:15468
注 册:2012-2-5
  得分:20 
SELECT t2
SET RELATION TO f1+f2 INTO "t1"
set skip to t1
REPLACE t1.f3 WITH t2.f3  FOR t1.f3=0
SELECT t1
BROWSE

有时间看看VFP的帮助文件

QQ:243688667
2017-09-13 23:55
yewxj
Rank: 2
等 级:论坛游民
帖 子:49
专家分:42
注 册:2015-6-18
  得分:0 
回复 6楼 sdta
谢谢老师!
2017-09-14 00:03
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:117
帖 子:4646
专家分:18748
注 册:2014-5-20
  得分:0 
REPLACE t1.f3 WITH t2.f3  FOR t1.f3=0
如果是处理所有记录,这句要加 ALL 子项:
REPLACE t1.f3 WITH t2.f3  FOR t1.f3=0 ALL
否则,只是处理当前工作区表的当前记录。
2017-09-14 07:38
wangzhiyi
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:21
帖 子:276
专家分:544
注 册:2014-4-9
  得分:0 
以下是引用吹水佬在2017-9-14 07:38:03的发言:

REPLACE t1.f3 WITH t2.f3  FOR t1.f3=0
如果是处理所有记录,这句要加 ALL 子项:
REPLACE t1.f3 WITH t2.f3  FOR t1.f3=0 ALL
否则,只是处理当前工作区表的当前记录。

吹版,如果在命令里加了FOR条件,范围会自动转为全部记录的。
2017-09-14 08:42
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:117
帖 子:4646
专家分:18748
注 册:2014-5-20
  得分:0 
以下是引用wangzhiyi在2017-9-14 08:42:38的发言:


吹版,如果在命令里加了FOR条件,范围会自动转为全部记录的。

确是
2017-09-14 09:55







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

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