foxpro表中如何查找部分相同数据

 我来答
百度网友cb6c9bc
2014-02-14 · TA获得超过1.2万个赞
知道大有可为答主
回答量:7158
采纳率:40%
帮助的人:5537万
展开全部
* ------------------------------------------------------------------------------------
* 系统平台:VFP6.0
* 类 型:自定义函数
* 功 能:将源DBF文件中重复记录剔除,结果存到新DBF中。
* 思 路:利用SQL...Group By全部字段,来读取唯一记录。
* 参 数:SurDBF源文件,ObjDBF目标文件
* 返回参数FT
* 注意事项:使用【完整的文件名】--仅基本检测,无自动判断
* 确保【目标文件安全】--以免误盖,目标后缀可略
* 确保源文件能打开,目标文件能写入
* 调用方法:?、=、do with、表达式套用
* 后 遗 症:SQL打开的文件未关闭。
* 程序编写:hanhezhai 2014.01.14
* ------------------------------------------------------------------------------------
Parameters SurDBF,ObjDBF && 设定参数

if type('SurDBF')#'C'.or.type('ObjDBF')#'C'&& 非字符型不接受
=messagebox('参数类型错误!',0,'提示')
return .f.
endif
if !file(SurDBF) && 判断源文件存在
=messagebox('源文件不存在!',0,'提示')
return .f.
endif

mSele = 'Select ' + str(select()) && 保存当前工作区

Use (SurDBF) in 0 again alia tmp001 && 如果之前已经打开,这个again就看出效果了
mFileds=FCOUNT('tmp001') && 提取字段个数
use in tmp001 && 关闭,操作不留痕

mlist='1' && 生成SQL表达式
for aa=2 to mfileds
mlist=mlist + ',' + str(aa,3)
endfor
mSQL='Select * from ' + SurDBF + ' Group by ' + mlist + ' into DBF '+ ObjDBF

&mSQL && 宏.执行SQL表达式
&mSele && 宏.回到原工作区

return .t.

* ------------------------------------------------------------------------------------
* 如果上面觉得烦!那么用下面这个简洁的:
* ------------------------------------------------------------------------------------
Parameters SurDBF,ObjDBF && 设定参数
clos all
Sele 0
Use (SurDBF) && 打开表
mFileds=FCOUNT() && 提取字段个数
mlist='1' && 生成SQL表达式
for aa=2 to mfileds
mlist=mlist + ',' + str(aa,3)
endfor
mSQL='Select * from '+SurDBF+' Group by '+mlist+' into DBF '+ObjDBF
&mSQL && 宏.执行SQL表达式
return
* ------------------------------------------------------------------------------------
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式