【发布时间】:2011-09-02 08:30:43
【问题描述】:
这与此略有不同:SQL Query Creating Start and End Dates
而且我不知道如何表达这个问题,因为我的英语很烂。
表格
Name | Date
Foo | 1-Sep
Foo | 2-Sep
Foo | 3-Sep
Foo | 5-Sep
Foo | 6-Sep
Foo | 7-Sep
Foo | 1-Dec
Foo | 2-Dec
Foo | 4-Dec
Foo | 5-Dec
Foo | 6-Dec
Foo | 7-Dec
Foo | 8-Dec
Foo | 1-Feb
Foo | 14-Feb
Foo | 15-Feb
Foo | 16-Feb
Foo | 17-Feb
Foo | 18-Feb
Foo | 19-Feb
Foo | 20-Feb
Foo | 22-Feb
我需要使用以下结果创建查询
查询结果
Name | Start Date | End Date
Foo | 1-Sep | 3-Sep
Foo | 5-Sep | 7-Sep
Foo | 4-Dec | 8-Dec
Foo | 1-Feb | 1-Feb
Foo | 1-Dec | 2-Dec
Foo | 14-Feb | 20-Feb
Foo | 22-Feb | 22-Feb
更新:
- 开始日期:连续几天的第一天
- 结束日期:连续几天的最后一天
- 如果某个日期不包含在一系列连续的日子中,例如上面的 2 月 22 日,则它是开始日期和结束日期。
【问题讨论】:
-
解释一下为什么这个输出是正确的,然后我们可以帮你查询
-
您应该说明您是如何到达这些结束日期的,尤其是 9 月 8 日。
-
我只是想解释一下。希望对您有所帮助。
-
哎呀,9 月 8 日错了,应该是 9 月 7 日
-
@Anon,您使用的是哪个版本的 SQL(Oracle、SQLServer、MySQL、PostgreSQL 等)? SQL 风格之间的日期操作差异很大。