首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > VFP >

批量更改数据,该如何解决

2012-02-06 
批量更改数据我有一个表,表有准考证号和姓名两个字段,相同准考证号只有第一个有姓名,如何将相同准考证号下

批量更改数据
我有一个表,表有准考证号和姓名两个字段,相同准考证号只有第一个有姓名,如何将相同准考证号下没有姓名一块添加上姓名,请求各位帮忙解决

[解决办法]
这最好是写一段小程序来做,
先将表按准考号索引
zkzh= " "
xm= " "
scan
if zkzh#考号字段
zkzh=考号字段
xm = 姓名字段
else
  repl 姓名字段 with xm
endif
endscan
[解决办法]
请试一试(vfp9.0):

CREATE CURSOR Temp (ID VARCHAR(4),Name VARCHAR(8))

INSERT INTO Temp (ID,Name) VALUES ( "1001 ", "A ")
INSERT INTO Temp (ID,Name) VALUES ( "1002 ", "B ")
INSERT INTO Temp (ID,Name) VALUES ( "1003 ", "C ")
INSERT INTO Temp (ID,Name) VALUES ( "1001 ", " ")
INSERT INTO Temp (ID,Name) VALUES ( "1002 ", " ")
INSERT INTO Temp (ID,Name) VALUES ( "1003 ", " ")

SELECT Temp
BROWSE

UPDATE Temp SET Name = A.Name ;
FROM (SELECT DISTINCT ID,Name FROM Temp WHERE !EMPTY(Name)) A ;
WHERE Temp.ID == A.ID AND EMPTY(Temp.Name)

BROWSE


[解决办法]
VFP9:
UPDATE TT FROM ;
(SELECT 准考证号,姓名 FROM TT GROUP BY 准考证号,姓名 WHERE !ISNULL(姓名);
AND LEN(TRIM(姓名))> 0) B;
WHERE TT.准考证号=B.准考证号 SET TT.姓名 =B.姓名

[解决办法]
VFP9.0:

SELECT 准考证号,姓名 INTO CURSOR TEMP1 FROM 原表名 WHERE !ISNULL(姓名) AND LEN(TRIM(姓名))> 0
UPDATE 原表名 SET 姓名=TEMP1.姓名 FROM TEMP1 WHERE 原表名.准考证号=TEMP1.准考证号
[解决办法]
VFP9.0以下:

SELECT 准考证号,姓名 INTO CURSOR TEMP1 FROM 原表名 WHERE !ISNULL(姓名) AND LEN(TRIM(姓名))> 0
SELECT TEMP1
SCAN
UPDATE 原表名 SET 姓名=TEMP1.姓名 WHERE 原表名.准考证号=TEMP1.准考证号
ENDSCAN

热点排行