Office中国论坛/Access中国论坛

标题: 如何修改WHERE语句 [打印本页]

作者: commander777    时间: 2011-5-24 17:55
标题: 如何修改WHERE语句
由于工作需要,我要在几个表来联合查询,得出结果,但是我写出来的语句查询速度非常慢,汗。不知道哪位可以指点一下?其中一个SQL语句如下:
SELECT CELTCHFP.EXCHID,CELTCHFP.DATE,CELTCHFP.PERIOD,SUM(CELTCHFP.TFCONGPGSM)/(SUM(RANDOMACC.CNROCNT+RANDOMACC.RAACCFA)+0.0000001)*SUM(CLTCH.TCASSALL)/(SUM(CLTCH.TASSALL)+0.0000001) as Wireless_Accessibility FROM CELTCHFP,RANDOMACC,CLTCH WHERE CELTCHFP.EXCHID = RANDOMACC.EXCHID AND CELTCHFP.DATE = RANDOMACC.DATE AND CELTCHFP.PERIOD = RANDOMACC.PERIOD AND CELTCHFP.EXCHID = CLTCH.EXCHID AND CELTCHFP.DATE = CLTCH.DATE AND CELTCHFP.PERIOD = CLTCH.PERIOD GROUP BY CELTCHFP.EXCHID,CELTCHFP.DATE,CELTCHFP.PERIOD

有别人指出问题主要在于WHERE语句造成表关联过大,那么WHERE语句该怎么改?能不能把3个条件合为一个?
作者: aslxt    时间: 2011-5-24 19:01
光看文字,头都大了。可否做一个实例传上来看看?
作者: commander777    时间: 2011-5-24 19:25
已上传,数据有点大,如果直接原来的查询运行会很慢的
作者: aslxt    时间: 2011-5-25 10:34
数据不算大,可是表中的重复数据太多,简单的查询都很慢,例如
SELECT CELTCHFP.EXCHID, CELTCHFP.DATE, CELTCHFP.PERIOD
FROM CELTCHFP INNER JOIN RANDOMACC ON CELTCHFP.EXCHID = RANDOMACC.EXCHID
GROUP BY CELTCHFP.EXCHID, CELTCHFP.DATE, CELTCHFP.PERIOD;

作者: aslxt    时间: 2011-5-25 10:50
如果你的表是导入或链接的,应该在导入或链接操作后整理一下生成简洁点的新表,如果是自建的表,就应该优化一下,去掉那么多的重复数据。
才几K的记录!我几百K的记录查询起来都要块。
作者: commander777    时间: 2011-5-25 14:27
表是从文本数据导入的,看来需要把表合并一下,谢谢!
作者: commander777    时间: 2011-5-25 14:51
再请教一下,如何把几张表快速的导入到一个新表中?




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3