标题:求助:如何将一个 dbf 按某个字段分成多个 dbf
只看楼主
二马路刘光头
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2022-3-24
结帖率:50%
已结贴  问题点数:20 回复次数:13 
求助:如何将一个 dbf 按某个字段分成多个 dbf
字段是文字,而不是数字,比如是学校名称。需要根据学校名称拆分成多个dbf,每个学校一个。想要一次性实现,而不是用copy to 一个一个生成。万分感谢啊!
搜索更多相关主题的帖子: 多个 dbf 名称 学校 字段 
2022-03-24 11:57
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:190
帖 子:3125
专家分:8340
注 册:2015-3-25
得分:0 
可以
2022-03-24 12:12
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:5 
为了能快速的解决问题,最好上传相关数据

坚守VFP最后的阵地
2022-03-24 12:20
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:190
帖 子:3125
专家分:8340
注 册:2015-3-25
得分:0 
字段是文字,而不是数字,比如是学校名称。需要根据学校名称拆分成多个dbf
假设原表是 学生表(姓名,学号,学校)
select distinct 学校 from 学生表 into cursor 学校tmp
select 学校tmp
nm = ""
fn = ""
scan
 nm=allt(学校)
 fn = "d:\xxx\" + nm
 select * from 学生表 where allt(学校)=nm into table (fn)
endscan
这样就可以了,没测试。


[此贴子已经被作者于2022-3-24 17:28编辑过]

2022-03-24 12:33
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
SELECT DISTINCT 学校名称 FROM 学生表 INTO CURSOR XX
SCAN
    SELECT * FROM 学生表 WHERE ALLTRIM(学生名称) == ALLTRIM(XX.学生名称) INTO (TABLE ALLTRIM(学生名称))
ENDSCAN

坚守VFP最后的阵地
2022-03-24 16:12
gs2536785678
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:45
帖 子:565
专家分:1668
注 册:2017-7-16
得分:0 
各位朋友可能是误解了庄主的意思,庄主是想【一句话】
而不是用一个程序代码段解决。
2022-03-25 09:18
二马路刘光头
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2022-3-24
得分:0 
示例表格.zip (308 Bytes)
大哥们,我就是想要一个命令能根据xymc(学院名称)自动把这个表分成5个表,每个表里有该学院学生的数据,分出来的表格最好能直接以该学院名字命名,我是真的不懂,麻烦大哥们能一步一步告诉我操作,谢谢了。
2022-03-27 23:02
二马路刘光头
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2022-3-24
得分:0 
4、5楼大哥有空的话,麻烦再给解答一下哈
2022-03-27 23:03
schtg
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:https://t.me/pump_upp
等 级:贵宾
威 望:67
帖 子:1355
专家分:2534
注 册:2012-2-29
得分:10 
回复 7楼 二马路刘光头
5楼已经给出了代码,稍加修改即可
程序代码:
set safety off
close all
select distinct xymc from 示例表格 into cursor xx
scan
    select * from 示例表格 where alltrim(xymc) == alltrim(xx.xymc) into table alltrim(xx.xymc)
endscan
close all
quit


用数组的方法,试一试,可否?
程序代码:
set safety off
close all
select distinct xymc from 示例表格 where len(alltrim(xymc))>0 into array xmc
nNum = ALen(xmc,0)
For i = 1 TO nNum
    select * from 示例表格 where alltrim(xymc)==alltrim(xmc(i)) into table (xmc(i))
endfor
close all
quit


[此贴子已经被作者于2022-3-28 06:01编辑过]

2022-03-28 05:55
laowan001
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:54
帖 子:802
专家分:1914
注 册:2015-12-30
得分:0 
一个命令恐怕没法实现
2022-03-28 07:25



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-508639-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.059267 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved