请教:关于遍历比对两张表数据的问题?!

soho09087 2012-04-10 04:07:50
想将A表中的记录与B表中的逐一进行比对(两张表的结构一样,B表的数据范围比A表大),然后将满足条件的记录(比如说A表的记录存在于B表中)的备注字段置为“1”,请问如何通过循环来实现这个功能?用一句SQL也可以实现么?
...全文
165 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
lygcw9602 2012-04-11
  • 打赏
  • 举报
回复
vfp6.0一行代码不一定解决问题
十豆三 2012-04-11
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
SQL code
*--vfp9.0
Update A表 Set 某字段='1' From B表 Where A表.要比较的字段=B.要比较的字段
[/Quote]这个不满足你的需求,需要分解写?
soho09087 2012-04-11
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

SQL code
*--vfp9.0
Update A表 Set 某字段='1' From B表 Where A表.要比较的字段=B.要比较的字段
[/Quote]

可能是我没有将问题表述清楚:
A表中的数据如:
2902129010|2100-12-31
2902129020|2100-12-31
B表中的数据如:
2902129010|2100-12-31
29021290101|2011-12-31
29021290102|2011-12-31
2902129020|2100-12-31
29021290201|2011-12-31
29021290202|2011-12-31

我想将这两个表的数据进行逐一循环比对,应该怎么写啊?就是先把A表的一条记录的第一个字段取出来然后循环与B表中的每一条记录都比对一遍,比对完成后再回到A表取第二条记录,再将第二条记录与B中的每一条数据逐一比对一遍,依次类推。。。
十豆三 2012-04-11
  • 打赏
  • 举报
回复
Close Databases All
Use A表 In 0
Use B表 In 0
Select A表
Scan
Select B表
Scan
If A表.要比较的字段=B.要比较的字段
Replace 某字段 With '1'
Endif
Endscan
Endscan

*-- 上面这些代码与下面一句 Update 效果是一样的,不知你为何要上面的
Update B表 Set 某字段='1' From A表 Where B表.要比较的字段=A.要比较的字段
十豆三 2012-04-11
  • 打赏
  • 举报
回复
Use B表
Scan
Update A表 Set 某字段='1' Where A表.要比较的字段=B.要比较的字段
Endscan
soho09087 2012-04-11
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]

引用 1 楼 的回复:
SQL code
*--vfp9.0
Update A表 Set 某字段='1' From B表 Where A表.要比较的字段=B.要比较的字段
这个不满足你的需求,需要分解写?
[/Quote]

豆三版主:
用 update...from...where 是可以的,只是我想知道用双scan循环遍历应该怎么写?好纠结啊
lc_apple 2012-04-10
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
SQL code
*--vfp9.0
Update A表 Set 某字段='1' From B表 Where A表.要比较的字段=B.要比较的字段
[/Quote]

正解
十豆三 2012-04-10
  • 打赏
  • 举报
回复
*--vfp9.0
Update A表 Set 某字段='1' From B表 Where A表.要比较的字段=B.要比较的字段

2,718

社区成员

发帖
与我相关
我的任务
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧