| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 966 人关注过本帖
标题:请问如何更新字段?
只看楼主 加入收藏
smart921
Rank: 1
等 级:新手上路
帖 子:107
专家分:9
注 册:2010-8-8
结帖率:86.96%
收藏
已结贴  问题点数:5 回复次数:14 
请问如何更新字段?
有两个表,
a表                                            b表
单位名称  月份   字段1   字段2                单位名称  月份   字段1   
a单位      1      asd                         a单位      1      asd
a单位      2      wer                         a单位      2      wer
b单位      1      hfg                         b单位      1      hfg





如何将b表的字段1连接到a表的字段2中?

搜索更多相关主题的帖子: 单位 如何 
2013-04-16 09:05
kiff
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广州
等 级:贵宾
威 望:46
帖 子:756
专家分:2531
注 册:2013-1-30
收藏
得分:0 
在VFP9。0

update a表 set 字段2=b.字段1 from b表 b where a表.单位名称==b.单位名称 AND A.月份==B.月份

在本论坛,有关你这方面的贴子很多

[ 本帖最后由 kiff 于 2013-4-16 10:00 编辑 ]
2013-04-16 09:15
oogami
Rank: 2
等 级:论坛游民
帖 子:62
专家分:16
注 册:2013-1-29
收藏
得分:0 
学习了,楼上牛
2013-04-16 09:35
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
VFP6.0代码
USE B表 ALIAS B
SCAN
   UPDATE A表 SET 字段2=B.字段1 WHERE A表.单位名称==B表.单位名称
ENDSCAN

坚守VFP最后的阵地
2013-04-16 09:35
smart921
Rank: 1
等 级:新手上路
帖 子:107
专家分:9
注 册:2010-8-8
收藏
得分:0 
回复 4楼 sdta
不行,连接上去的数据都是每个单位第一行的数据(a单位1月份的数据,b单位一月份的数据)。
2013-04-16 09:46
kiff
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广州
等 级:贵宾
威 望:46
帖 子:756
专家分:2531
注 册:2013-1-30
收藏
得分:0 
在 VFP6。0

USE a表 IN 0 EXCLUSIVE
SELECT A.单位名称,A.月份,A.字段1,NVL(B.字段1,' ') 字段2 FROM a表 A LEFT JOIN B表 B ON  a表.单位名称==b.单位名称 AND A.月份==B.月份 INTO CURSOR TMP1
ZAP IN a表
SELECT a表
ZAP
APPEND FROM (DBF('TMP1'))


[ 本帖最后由 kiff 于 2013-4-16 10:00 编辑 ]
2013-04-16 09:57
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
以下是引用smart921在2013-4-16 09:46:28的发言:

不行,连接上去的数据都是每个单位第一行的数据(a单位1月份的数据,b单位一月份的数据)。
原因是单位名称不唯一。
两个表的记录数是否相等。

[ 本帖最后由 sdta 于 2013-4-16 10:20 编辑 ]

坚守VFP最后的阵地
2013-04-16 10:13
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
记录数如果相同
USE B表 ALIAS B
SCAN
   UPDATE A表 SET 字段2=B.字段1 WHERE RECNO([A表])=RECNO([B表])
ENDSCAN

坚守VFP最后的阵地
2013-04-16 10:15
smart921
Rank: 1
等 级:新手上路
帖 子:107
专家分:9
注 册:2010-8-8
收藏
得分:0 
回复 8楼 sdta
数据不一定相等。
2013-04-16 10:36
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
程序代码:
CREATE CURSOR A表 (单位名称 C(10),月份 N(2),字段1 C(10),字段2 C(10))
INSERT INTO A表 VALUES ([a单位],1,[asd],[])
INSERT INTO A表 VALUES ([a单位],2,[wer],[])
INSERT INTO A表 VALUES ([b单位],1,[hfg],[])
CREATE CURSOR B表 (单位名称 C(10),月份 N(2),字段1 C(10))
INSERT INTO B表 VALUES ([a单位],1,[asd])
INSERT INTO B表 VALUES ([a单位],2,[wer])
INSERT INTO B表 VALUES ([b单位],1,[hfg])
**记录数相等的情况下
**VFP6.0代码
SCAN
   UPDATE A表 SET 字段2=B表.字段1 WHERE RECNO([A表])=RECNO([B表])
ENDSCAN
SELECT A表
BROWSE
**VFP9.0代码
UPDATE A表 SET 字段2=B表.字段1 FROM B表 WHERE RECNO([A表])=RECNO([B表])
SELECT A表
BROWSE
图片附件: 游客没有浏览图片的权限,请 登录注册

坚守VFP最后的阵地
2013-04-16 10:42
快速回复:请问如何更新字段?
数据加载中...
 
   



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

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