今天优化了一个上年同期的查询,快了不少,分享一下-李志能
Access软件网QQ交流学习群(群号码198465573),欢迎您的加入!
首页 >技术文章> Access数据库-查询/SQL语句


今天优化了一个上年同期的查询,快了不少,分享一下

发表时间:2016/11/19 15:21:38 评论(1) 浏览(5256)  评论 | 加入收藏 | 复制
   
摘 要:我用平台开发了公司里面自己用的生产管理系统,好几个说有一个模块数据显示慢,其实就是上年同期原矿和上年同期金属两列生成的时候慢了。我今天改进了一下,由原来的DLOOKUP函数改为子查询,速度快了不少,在这里分享一下,猿友们自己体会
正 文:

我用平台开发了公司里面自己用的生产管理系统,好几个说有一个模块数据显示慢,其实就是查询生成上年同期原矿和上年同期金属两列的时候慢了。我今天改进了一下,由原来的DLOOKUP函数改为子查询,速度快了不少,在这里分享一下,猿友们自己体会:

原查询:

Select TMP_tbl原矿产量.日期, TMP_tbl原矿产量.日产量, TMP_tbl原矿产量.日品位, TMP_tbl原矿产量.日金属, TMP_tbl原矿产量.月产量, TMP_tbl原矿产量.月品位, TMP_tbl原矿产量.月金属, TMP_tbl原矿产量.年产量, TMP_tbl原矿产量.年金属, DLookUp("年产量","TMP_tbl原矿产量","日期=" & SQLDate(DateAdd("yyyy",-1,TMP_tbl原矿产量.日期))) AS 上年同期原矿, DLookUp("年金属","TMP_tbl原矿产量","日期=" & SQLDate(DateAdd("yyyy",-1,TMP_tbl原矿产量.日期))) AS 上年同期金属 FROM TMP_tbl原矿产量 Where TMP_tbl原矿产量.日期>=FirstDayOfYear(Date()) orDER BY TMP_tbl原矿产量.日期 DESC;


改进后的查询:

Select a.日期, a.日产量, a.日品位, a.日金属, a.月产量, a.月品位, a.月金属, a.年产量, a.年金属, (Select b.年产量 FROM TMP_tbl原矿产量 as b Where b.日期=dateadd("yyyy",-1,a.日期)) AS 上年同期原矿, (Select b.年金属 FROM TMP_tbl原矿产量 as b Where b.日期=dateadd("yyyy",-1,a.日期)) AS 上年同期金属 FROM TMP_tbl原矿产量 AS a Where a.日期>=FirstDayOfYear(Date()) orDER BY a.日期 DESC;



Access软件网交流QQ群(群号:198465573)
 
 相关文章
Sql优化查询速度50个方法小结\SQL Server速度查询优化...  【风行  2012/8/4】
一个20秒SQL慢查询优化的经历与处理方案  【缪炜  2015/12/27】
数据库性能优化之SQL语句优化(一)  【宏鹏  2016/5/4】
数据库性能优化之SQL语句优化(二)  【宏鹏  2016/5/4】
在 SQL Server 数据库的 WHERE 语句中使用子查询  【缪炜  2016/11/11】
常见问答
技术分类
相关资源
文章搜索
关于作者

李志能

文章分类

文章存档

友情链接