主题:如何把数据库拆分成以年月组成的数据库???
vfp学生
[专家分:0] 发布于 2009-08-04 21:52:00
各位老师:如题,怎么做才能完成?
例如:
数量 日期
200 2009-01-01
100 2009-01-02
500 2009-02-03
700 2009-03-03
800 2009-05-15
现在这个数据库很大,查询起来要等好几分钟,速度太慢,在论坛上看到有人说每月生成一个数据库,然后再按条件查询,请问用什么命令可以把这个庞大的数据拆分开!谢谢!
回复列表 (共2个回复)
沙发
homayzh [专家分:7040] 发布于 2009-08-04 23:58:00
你的数据 表是现成的??
我的办法是
use 表文件
copy stru to 1月份
use 1月份
appe from 表文件 for month(日期)=1 and year(日期)=2009
.....
.....
.....
也可以用循环。。
。这是最笨的办法
板凳
lbscyb [专家分:4780] 发布于 2009-08-13 00:58:00
如果表的字段“日期”是字符型的,这样处理
select SUBSTR(ALLTRIM(日期),1,4) + SUBSTR(ALLTRIM(日期),6,1) as databasename ;
from 数据源表 into cursor DBName &&将日期处理成只含年和月的数据
select databasename from DBName group by databasename into cursor cListName
&&按年月分组
*-生成按年月命名的表(如 DBF200908),路径是默认路径
select cListName
scan
cYearMonth = alltrim(cListName.databasename)
cDbfName = "DBF" + cYearMonth
select * from 数据源表 where !dele() and SUBSTR(ALLTRIM(日期),1,4) + SUBSTR(ALLTRIM(日期),6,1) = cYearMonth into dbf &cDbfName
endscan
我来回复