回 帖 发 新 帖 刷新版面

主题:根据地址加邮编

我有两个表:一个全国邮编表(yb.dbf)以下为部分
省份    市县区名    邮政编码
河北    康保县    076650
河北    尚义县    076750
北京    怀柔区    101400
北京    密云县    101500
北京    延庆县    102100
北京    昌平区    102200
一个只有地址栏邮政编码为空白的表(dz.dbf)以下为部分,
地址                                 邮政编码
河北省康保县新华路12号    
河北尚义县民政局
北京市怀柔区怀昌路1号    
密云县实验小学    
延庆县公安局    
北京昌平区商业街市政家属楼
北京朝阳区金龙大厦    
如何根据第一个表在第二个表的邮政编码里加上邮编?

回复列表 (共3个回复)

沙发

*---VFP6.0代码
CREATE CURSOR TABNAMEA (省份 C(10),市县区名 C(10),邮政编码 C(6))
INSERT INTO TABNAMEA VALUES ("河北","康保县","076650")
INSERT INTO TABNAMEA VALUES ("河北","尚义县","076750")
INSERT INTO TABNAMEA VALUES ("北京","怀柔区","101400")
INSERT INTO TABNAMEA VALUES ("北京","密云县","101500")
INSERT INTO TABNAMEA VALUES ("北京","延庆县","102100")
INSERT INTO TABNAMEA VALUES ("北京","昌平区","102200")
CREATE CURSOR TABNAMEB (地址 C(40),邮政编码 C(6))
INSERT INTO TABNAMEB VALUES ("河北省康保县新华路12号","")
INSERT INTO TABNAMEB VALUES ("河北尚义县民政局","")
INSERT INTO TABNAMEB VALUES ("北京市怀柔区怀昌路1号","")
INSERT INTO TABNAMEB VALUES ("密云县实验小学","") &&地址不规范(无省份),因此没有邮政编码
INSERT INTO TABNAMEB VALUES ("延庆县公安局","") &&地址不规范(无省份),因此没有邮政编码
INSERT INTO TABNAMEB VALUES ("北京昌平区商业街市政家属楼","")
INSERT INTO TABNAMEB VALUES ("北京朝阳区金龙大厦","") &&没有朝阳区,因此没有邮政编码
SELECT TABNAMEA
SCAN
   UPDATE TABNAMEB SET TABNAMEB.邮政编码=TABNAMEA.邮政编码 WHERE OCCURS(ALLTRIM(TABNAMEA.省份),TABNAMEB.地址)>0 AND OCCURS(ALLTRIM(TABNAMEA.市县区名),TABNAMEB.地址)>0
ENDSCAN
SELECT TABNAMEB
BROWSE

板凳

DZ 表中有的记录缺少“省名”,如果所有“县名”中没有重复的,可以用以下的代码:
SET PATH TO SYS(5)+SYS(2003)
USE dz
USE yb in 0
FOR i = 1 to RECCOUNT("yb")
    GO i in yb
    REPLACE all 邮政编码 with yb.邮政编码 for ALLTRIM(yb.市县区名)$dz.地址
NEXT 

3 楼

第一步先校正地址,第二步根据地址加邮编

我来回复

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