回 帖 发 新 帖 刷新版面

主题:两表的事烦了我几个月都没搞定。

表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个回复)

沙发


是新手吧?
代码如下
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

板凳

select 表2

scan for !dele()

     update 表1 set zh = 表2.zh where 表1.xm = 表2.xm 

endscan

3 楼

TO 楼主: 

本不想回这个贴,既然这个问题能持续了几个月,不妨再持续多几年,人生总是会有些无法也不应该解决的事情.

TO 一楼: 
1. for +  go 可以用二楼的scan代替
2. 是found( )不是fount( )
3. go recno( )是多余的
4. 这种办法只能修改一个对应值,在唯一标识的时候才不会出问题.
5. 有更高效率的SQL语句可用,就尽量不要用这种结构了.

TO 二楼:
scan 代码是多余的,多做了非常多的无用功.只需要第三行代码就足够了.

4 楼

update 表1 set 表1.zh=表2.zh from 表1 inner join 表2  on 表1.xm=表2.xm

5 楼

update 表1 set zh = 表2.zh where 表1.xm = 表2.xm 可更新,但只能更新一条记录。

6 楼

[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 楼

哎。这个问题没一个能搞定。为什么自己不试一下才发贴呢???

8 楼

这么平常的问题,不会说几个月都没人搞定吧。

9 楼

[quote]哎。这个问题没一个能搞定。为什么自己不试一下才发贴呢???[/quote]
[quote]这么平常的问题,不会说几个月都没人搞定吧。[/quote]
我只能说,楼主你的问题难度实在是太高了,我们的电脑配置太低,数据类型都追不上你的十分之一,所以我们即使费尽了九虎二牛的力气实在是没有能力搞得定.
[url=http://bbs.pfan.cn/post-290360.html]我的VFP经验还不够六年,高手们从08年就遗留下来的高级难题,我们哪能解决得了呢,岂不是羞煞前辈们了?[/url]

10 楼

[quote][quote]哎。这个问题没一个能搞定。为什么自己不试一下才发贴呢???[/quote]
[quote]这么平常的问题,不会说几个月都没人搞定吧。[/quote]
我只能说,楼主你的问题难度实在是太高了,我们的电脑配置太低,数据类型都追不上你的十分之一,所以我们即使费尽了九虎二牛的力气实在是没有能力搞得定.
[url=http://bbs.pfan.cn/post-290360.html]我的VFP经验还不够六年,高手们从08年就遗留下来的高级难题,我们哪能解决得了呢,岂不是羞煞前辈们了?[/url][/quote]

==========================================================================
呵呵,高手不是都走光了吗,没有人能搞喽。

我来回复

您尚未登录,请登录后再回复。点此登录或注册