回 帖 发 新 帖 刷新版面

主题:高手帮忙 两个数据库之间 引用数据的问题

要在C0510SU.DBF 中 引用 book1.DBF 中的B字段 
我写了一个程序 可是通不过 高手指教.

use book1
use C0510su
scan 
update C0510su set Lprice=book1.b where c0510su.code=book1.a 
endsc 

回复列表 (共15个回复)

沙发

指教谈不上,说说看:

1.这不是两个数据库,而是两个表。
2.命令语法不熟悉,第2个use关闭了第1个use打开的表。
3.不建议scan中间用update,因为update强大到没必要scan。

改写:

use book1 in 0
use C0510su in 0
select C0510su
scan
  select book1
  scan
     if c0510su.code=book1.a
        replace C0510su.Lprice WITH book1.b 
     endif
  endscan 
endscan


最简方式,一句实现:

update C0510su set Lprice=book1.b from book1 where c0510su.code=book1.a

板凳

但是还有一个问题, 在book1 当中 是有重复的记录的, 如何能够使得记录不被重复替换呢? 请赐教!

3 楼

有没有高手可以解决这个问题啊? 在线等~ 谢谢赐教!

4 楼

[quote]但是还有一个问题, 在book1 当中 是有重复的记录的, 如何能够使得记录不被重复替换呢? 请赐教![/quote]
你的描述最好再详细一些。
重复记录?是某些字段重复还是数据行重复?
如果是某些字段重复,可以加条件进行替换。如果数据行重复了,就不太好办了。

5 楼

book1.a当中有重复的数据 比如0076100 出现了两次 这样的话 所有的C0510su 中的数据都被后面的记录刷新成0了, 而我想要的是分别匹配进c0510su的记录里面

6 楼

有没有高手可以解决这个问题啊? 在线等~ 谢谢赐教!

7 楼

顶上来!!

8 楼

再顶一次

9 楼

跪求高手帮忙!!!!

10 楼

LZ的分别匹配进C0510su中,是不是1对N,N对N的情况啊?
那么连接一下就可以了.

SELECT A.PNO,A.LNO,A.PRNT,A.CATA,A.CODE,B.* FROM C0510SU A LEFT JOIN BOOK1 B ON A.CODE=B.A WHERE A.CODE='0076100'

我来回复

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