设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 7065|回复: 17
打印 上一主题 下一主题

[模块/函数] [已解决]请教:如何用查询得出两个给定日期之间的所有日期列表?

[复制链接]
1#
发表于 2013-5-30 18:29:37 | 显示全部楼层
用查询可以实现,两个查询即可。
第一步,任意选择一个表(数据足够多,能够唯一排序,有自动编号最好),然后就生成所需记录条数(结束时间-开始时间)的查询1。
第二步,利用以上查询1,很容易得出如下结果的查询2:
2013-4-23
2013-4-24
2013-4-25
...
2013-5-26
第三步,利用查询2就可以做很多事了,
2#
发表于 2013-5-31 15:37:06 | 显示全部楼层
aslxt 发表于 2013-5-31 09:06
数据足够多,是指多到保证明天都有记录吗?
如果是那样就好办了,数据没有多到那种程度!
如附件,“ ...

我不能处理你的附件,请检查附件。
数据足够多的意思是,如果你要得到2013-1-1至2013-12-31的连续日期,数据库中表的数据需要达到356条无重复数据。对这个要使用的表是没有太多限制的,只需要记录条数够(不重复),不管字段有多少,是什么字段。
3#
发表于 2013-6-1 10:45:54 | 显示全部楼层
本帖最后由 cgsilicone 于 2013-6-1 11:49 编辑
aslxt 发表于 2013-5-31 17:56
达不到你说的数据量,就像自动编号被删了一样,不连续

我没有讲清思路,请看看附件,很容易实现,效率也高。
表中数据的多少,决定了查询“第2步查询2”中“union” 的多少。数据够多,就不用“union“。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
4#
发表于 2013-6-2 08:38:09 | 显示全部楼层
netguestcn 发表于 2013-6-1 22:26
供参考:
1、建一临时表:日期表
2、利用自定义函数将营业起止日期间的所有日期追加到“日期表”

楼主已经明确要求“不用表“。你的方法不可行。
可以参看我的方法,其中“第1步查询1”,“第2步查询2“可以合并为一个查询,也就是说一个
查询就可以得到“连续日期列表“,分开写只是为了说明思路。
5#
发表于 2013-6-2 20:08:45 | 显示全部楼层
layaman_999 发表于 2013-6-2 18:02
方法可行,效率不高

限定条件下的解决方案,效率只是相对的。
如果有限定条件下的高效率好方法,希望能分享。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-6 19:02 , Processed in 0.088593 second(s), 28 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表