【发布时间】:2016-02-02 14:13:24
【问题描述】:
每天有员工生病,就会增加一条记录
我的表看起来像这样(示例):
Name - Date
Ben - 14/01/2016
Ben - 15/01/2016
Ben - 18/01/2016
Ben - 19/01/2016
Ben - 02/02/2016
Ben - 03/02/2016
Bart - 12/01/2016
Bart - 13/01/2016
Bart - 14/01/2016
Lisa - 26/02/2016
Lisa - 29/02/2016
Lisa - 01/03/2016
我需要的是:
Name - StartDate - NumberOfDays
Ben - 14/01/2016 - 4 (so 4 following dates (including a weekend))
Ben - 02/02/2016 - 2
Bart - 12/01/2016 - 3
Lisa - 26/02/2016 - 3
因此按名称和期间分组,并显示期间的开始日期和天数。
我不知道如何开始,即使在 SQL 中是可能的。
问题是这个时间段可以包括周末,所以我想我需要一个表周末日期和假期来检查(因为只需采取 ==>(difference current.date-previous.date) <= 3 就可以使一个时间段3天不是周末的实际两个时段)?
我希望我能很好地解释我的问题。非常感谢所有帮助!
【问题讨论】:
-
MySQL 和 SQL Server 的日期/时间处理方式不同。不要标记未涉及的产品...
-
国定假日呢?
-
如果你有一个时间表,添加另一个列,它将对每一行进行排名并过滤周末,这样排名列将连续
-
@jarlh 感谢回复,我删除了标签,国定假日也应该被视为假期(与周末相同)但是我有一张所有周末和假期的桌子
-
@sagi 我不确定你的意思?