主题:两表的事烦了我几个月都没搞定。
huangzhicong2008
[专家分:0] 发布于 2012-01-21 17:55:00
表2
xm zh
aa 111
dd 222
cc 333
表1
xm je zh
dd 23
aa 35
bb 25
cc 43
怎样使表2的zh自动填入表1的zh
回复列表 (共14个回复)
沙发
lygcw9603 [专家分:250] 发布于 2012-01-21 20:47:00
是新手吧?
代码如下
SELECT 1
USE 表1
SELECT 2
USE 表2
FOR I=1 TO RECCOUNT()
GO I
CZH=ZH
SELECT A
LOCATE FOR ALLTRIM(A.ZH)==ALLTRIM(CZH) &&ZH 如果是数值型的去掉ALLTRIM()
IF FOUNT()
GO RECNO()
REPLACE A.ZH WITH CZH
ENDIF
SELECT B
ENDFOR
板凳
lbscyb [专家分:4780] 发布于 2012-01-21 22:10:00
select 表2
scan for !dele()
update 表1 set zh = 表2.zh where 表1.xm = 表2.xm
endscan
3 楼
moz [专家分:37620] 发布于 2012-01-22 12:29:00
TO 楼主:
本不想回这个贴,既然这个问题能持续了几个月,不妨再持续多几年,人生总是会有些无法也不应该解决的事情.
TO 一楼:
1. for + go 可以用二楼的scan代替
2. 是found( )不是fount( )
3. go recno( )是多余的
4. 这种办法只能修改一个对应值,在唯一标识的时候才不会出问题.
5. 有更高效率的SQL语句可用,就尽量不要用这种结构了.
TO 二楼:
scan 代码是多余的,多做了非常多的无用功.只需要第三行代码就足够了.
4 楼
fyyylyl [专家分:8550] 发布于 2012-01-22 16:56:00
update 表1 set 表1.zh=表2.zh from 表1 inner join 表2 on 表1.xm=表2.xm
5 楼
fyyylyl [专家分:8550] 发布于 2012-01-22 16:57:00
update 表1 set zh = 表2.zh where 表1.xm = 表2.xm 可更新,但只能更新一条记录。
6 楼
moz [专家分:37620] 发布于 2012-01-22 18:11:00
[quote]update 表1 set zh = 表2.zh where 表1.xm = 表2.xm 可更新,但只能更新一条记录。[/quote]
UPDATE 表1 SET zh=表2.zh [color=00FF00]FROM 表2 [/color]WHERE 表1.xm=表2.xm
7 楼
huangzhicong2008 [专家分:0] 发布于 2012-01-23 17:27:00
哎。这个问题没一个能搞定。为什么自己不试一下才发贴呢???
9 楼
moz [专家分:37620] 发布于 2012-01-23 21:09:00
[quote]哎。这个问题没一个能搞定。为什么自己不试一下才发贴呢???[/quote]
[quote]这么平常的问题,不会说几个月都没人搞定吧。[/quote]
我只能说,楼主你的问题难度实在是太高了,我们的电脑配置太低,数据类型都追不上你的十分之一,所以我们即使费尽了九虎二牛的力气实在是没有能力搞得定.
[url=http://bbs.pfan.cn/post-290360.html]我的VFP经验还不够六年,高手们从08年就遗留下来的高级难题,我们哪能解决得了呢,岂不是羞煞前辈们了?[/url]
10 楼
kosung [专家分:910] 发布于 2012-02-03 01:12:00
[quote][quote]哎。这个问题没一个能搞定。为什么自己不试一下才发贴呢???[/quote]
[quote]这么平常的问题,不会说几个月都没人搞定吧。[/quote]
我只能说,楼主你的问题难度实在是太高了,我们的电脑配置太低,数据类型都追不上你的十分之一,所以我们即使费尽了九虎二牛的力气实在是没有能力搞得定.
[url=http://bbs.pfan.cn/post-290360.html]我的VFP经验还不够六年,高手们从08年就遗留下来的高级难题,我们哪能解决得了呢,岂不是羞煞前辈们了?[/url][/quote]
==========================================================================
呵呵,高手不是都走光了吗,没有人能搞喽。
我来回复