【发布时间】:2014-05-26 03:50:10
【问题描述】:
我正在查询一个支持票证数据库,每张票证都有一个“打开日期”和“关闭日期”列。门票经常保持开放多天,因此我们需要能够提取每天开放的门票数量。
例如,对于 2014 年 4 月 8 日,我们需要知道 4 月 8 日打开了多少张票,再加上 4 月 8 日之前打开但在 4 日凌晨 12:00 仍然打开的未关闭票的总数/8(可能会或可能不会在 4/8 期间或之后关闭)。
这对于单个日期来说似乎很简单,但现在我需要编写一个查询来提取完整的日期范围。
例如,我们需要编写一个查询,返回 2014 年 1 月 1 日到 2014 年 4 月 10 日之间的每个日期以及每个日期打开的门票总数(包括打开 0 个门票的日期)。
这是否可能只使用查询或子查询,而不使用任何存储过程或临时数据表?
我们目前正在将数据拉入 Excel 并在那里计算日期统计信息,但 Excel 不是一个可扩展的解决方案,我们希望 SQL 执行这项工作,以便我们可以将此报告迁移到 SSRS(SQL Server Reporting Services)路。
【问题讨论】:
-
I.K. 的回答会让你接近,但它不会给你没有开票的日期。为此,您需要某种日期表,您可以将其外部加入。
标签: sql sql-server date date-range