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

请十豆三老师帮小弟我看看:怎么从一个总表里面把不同的记录筛选到其他不同过的表里

2014-01-03 
请十豆三老师帮我看看:如何从一个总表里面把不同的记录筛选到其他不同过的表里本帖最后由 rayhua 于 2013-

请十豆三老师帮我看看:如何从一个总表里面把不同的记录筛选到其他不同过的表里
本帖最后由 rayhua 于 2013-12-28 09:20:32 编辑 我用的是VFP6.0
现在有5个表,表的结构完全一样,有单位编号、个人编号、期号三个字段,均是字符型。表名分别是总表.dbf、00001250.dbf、00001251.dbf、00001253.dbf、00001254.dbf。总表里面同一个个人编号的人有10-20条左右不等的记录,分别对应不同的单位编号和期号。现在想将总表里面同一个人编号对应的所有记录全部加入00001250.dbf、00001251.dbf、00001253.dbf、00001254.dbf中的一个表里面。筛选的条件是每个个人编号对应的最后一个期号所对应的单位编号。比如某个个人编号对应的最后一个期号所在记录的单位编号是00001250,则将总表里面该个人编号所对应的所有记录全部加入表00001250.dbf里。
请问我该如何做?
[解决办法]

SELECT 单位编号,个人编号,期号 FROM 总表 WHERE 期号 IN (SELECT MAX(期号) FROM 总表 GROUP BY 个人编号) ORDER BY 单位编号 INTO CURSOR T
SCAN
   SELECT * FROM 总表 WHERE 个人编号==T.个人编号 INTO TABLE [A]+T.单位编号
   *BROWSE
ENDSCAN

[解决办法]
引用:
引用于: 2013-12-29 14:24:30
把你的样表和结果表上传到这里吧:http://access911.net/csdn/

已经上传了,麻烦十豆三老师了为何不压缩成一个文件再上传,算了,已下载。
以下代码在 VFP6 及 VFP9 中测试通过。
Close Databases All
Select 个人编号,Max(期号) As 最后期号 Into Cursor T1 From 总表 Group By 个人编号
Select A.*,B.单位编号 Into Cursor T2 From T1 A Inner Join 总表 B On A.个人编号=B.个人编号 And A.最后期号=B.期号 Order By A.个人编号
Select T2
Scan
lcTableName=Alltrim(单位编号)
If !File(lcTableName)
Select * Into Table '&lcTableName.' From 总表 Where 1=0
Endif
Use '&lcTableName.' Again In Select('XX') Alias XX
Select XX
Append From 总表 For 个人编号=T2.个人编号
Endscan
Close Databases All

热点排行