我在此寻求解决方案。每个月我都有一个dbf。在每个dbf中有两列名为A和B,A是一系列数字,B是vlookup,并且如果列A中的值未出现在1月的列A中,我想在2月份将列B替换为“新” ,反之亦然,“老”。我的代码如下:Foxpro替换为“”不在
REPLACE ALL B WITH "Old"
REPLACE ALL B WITH "New" FOR A NOT IN (sele A FROM &filejanuary)
谢谢。
我在此寻求解决方案。每个月我都有一个dbf。在每个dbf中有两列名为A和B,A是一系列数字,B是vlookup,并且如果列A中的值未出现在1月的列A中,我想在2月份将列B替换为“新” ,反之亦然,“老”。我的代码如下:Foxpro替换为“”不在
REPLACE ALL B WITH "Old"
REPLACE ALL B WITH "New" FOR A NOT IN (sele A FROM &filejanuary)
谢谢。
以上评论者很接近。
使用SQL UPDATE命令...
* --- Replace ALL Feb.B with "Old" ---
UPDATE February SET February.B = 'Old'
* --- Now change Feb.B to "New" for Applicable Conditions ---
UPDATE February SET February.B = 'New' ;
WHERE February.A NOT IN (SELECT A FROM January)
注 - 也有VFP命令的方法
* --- Replace ALL Feb.B with "Old" ---
SELECT February
REPLACE ALL February.B WITH "Old"
* --- Relate table January to table February through Field A ---
SELECT January
SET ORDER TO A && Assumes Index built on Jan with Expression = A
SELECT February
SET RELATION TO A INTO January
* --- Replace ALL Feb.B with "New" for No Related A in Jan ---
REPLACE ALL B WITH "New" FOR EMPTY(January.A)
好运
update February set February.B = 'Old'
update February set February.B = 'New' ;
where not exists (select * from January where January.A = February.A)
我认为该命令可以用于其他SQL语言,但不能直接在FoxPro中使用 –
该代码也适用于fox pro。当说到狐狸亲时,你在说哪个版本? –
对于迟到回复感到抱歉,我目前使用VFP7.0 –
此外,如果你想用的xBase,那么它如果在January.A上有一个索引,它会简单得多。(可以说它的标签是JanA--谁真的可以命名字段A,B ......):
select February
replace all B with iif(seek(February.A, 'January', 'JanA'), 'Old', 'New')
是的,我已经使用@Dhugalma的命令完成了它。感谢这两个。 –
当你说“上面的评论员很近”时,你的意思是什么?什么部分不适合你?你可以在SQL和VFP中使用许多不同的形式来做同样的事情。 @昂艺威,它不是很接近目标。你不应该以假设作出决定并先尝试。顺便说一句,“关闭”代码甚至可以在VFP5中工作。 –