生成表查询
用查询实现连续日期列表
2017-07-05 17:23:00

不用表和临时表的情况下,如何用查询的方式得出结果两个给定日期之间的所有日期列表

比如:给定日期  2013-4-23、2013-5-26通过查询得出:2013-4-232013-4-242013-4-25...2013-5-26

一般来说,我们都是表来处理,但是这里需要我们用查询来实现,两个查询即可。第一步,任意选择一个表(数据足够多,能够唯一排序,有自动编号最好),然后就生成所需记录条数(结束时间-开始时间)的查询1。第二步,利用以上查询1,很容易得出如下结果的查询2:2013-4-232013-4-242013-4-25...2013-5-26第三步,利用查询2就可以做很多事了,

效果图:

部分查询内容:

SELECT #2013-4-23# + DCount("1","营业报表","营业报表.ID<" & [dyb].[ID] ) AS 连续日期 FROM 营业报表 AS dyb union SELECT #2013-5-9# + DCount("1","营业报表","营业报表.ID<" & [dyb].[ID] ) AS 连续日期 FROM 营业报表 AS dyb union SELECT #2013-5-25# + DCount("1","营业报表","营业报表.ID<" & [dyb].[ID] ) AS 连续日期 FROM 营业报表 AS dyb union SELECT #2013-6-10# + DCount("1","营业报表","营业报表.ID<" & [dyb].[ID] ) AS 连续日期 FROM 营业报表 AS dyb UNION SELECT top 2 #2013-6-26# + DCount("1","营业报表","营业报表.ID<" & [dyb].[ID] ) AS 连续日期 FROM 营业报表 AS dyb;没有使用临时表,只是根据数据源的情况动态修改查询的SQL语法,基本满足需求。

详细请查看:http://www.office-cn.net/thread-117020-1-1.html