回 帖 发 新 帖 刷新版面

主题:如何把数据库拆分成以年月组成的数据库???

各位老师:如题,怎么做才能完成?
例如:
数量          日期
200                  2009-01-01
100                  2009-01-02
500                  2009-02-03
700                  2009-03-03
800                  2009-05-15

现在这个数据库很大,查询起来要等好几分钟,速度太慢,在论坛上看到有人说每月生成一个数据库,然后再按条件查询,请问用什么命令可以把这个庞大的数据拆分开!谢谢!

回复列表 (共2个回复)

沙发

你的数据 表是现成的??
我的办法是
use 表文件
copy stru to 1月份
use 1月份
appe from 表文件 for month(日期)=1 and year(日期)=2009
.....
.....
.....
也可以用循环。。
。这是最笨的办法

板凳

如果表的字段“日期”是字符型的,这样处理

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



我来回复

您尚未登录,请登录后再回复。点此登录或注册