我有一张名为SickLeaves的桌子,上面有员工ID,病假的开始和结束日期。
EmpID DateFrom DateTo
3022 10.10.2010 13.10.2010
3022 09.11.2011 10.11.2011
3022 11.11.2011 11.11.2011
3022 13.11.2011 17.11.2011
3574 01.11.2011 14.11.2011
3574 15.11.2011 26.11.2011
3908 09.11.2011 09.11.2011
2734 09.11.2011 09.11.2011
3054 16.11.2011 16.11.2011
3054 17.11.2011 17.11.2011
3054 18.11.2011 18.11.2011
2246 09.11.2011 09.11.2011
3022 12.11.2011 12.11.2011
您可以看到,对于员工3022,有多个病假记录。
现在我想知道的是,这些员工中的哪一位从现在起连续缺席超过60天,不包括周末和假期。
Emp 3022有4片病叶,但其中只有3片是连续的。
EmpID DateFrom DateTo ConsecutiveDaysOfAbsence
3022 09.11.2011 10.11.2011 2
3022 11.11.2011 11.11.2011 1
3022 13.11.2011 17.11.2011 4
3574 01.11.2011 26.11.2011 19
3908 09.11.2011 09.11.2011 1
2734 09.11.2011 09.11.2011 1
3054 16.11.2011 18.11.2011 3
2246 09.11.2011 09.11.2011 1
因此,只有这三个人才能分组该员工共有多少天缺席。
EmpID SUMOFConsecutiveDaysOfAbsence
3022 7
3574 19
3908 1
2734 1
3054 3
2246 1
我设法从DateFrom和DateTo用DATEDIFF计算周末和假日,但我不知道如何从分组中排除每个EmpID没有连续日期的记录。
假期表具有以下结构
Date Holyday
01.01.2016 New Year's Day
18.01.2016 Martin Luther King Jr. Birthday
15.02.2016 President's Day
30.05.2016 Memorial Day
04.07.2016 Independence Day
05.09.2016 Labor Day
11.11.2016 Veterans' Day
24.11.2016 Thanksgiving Day
25.11.2016 Thanksgiving Friday
25.12.2016 Christmas Day
26.12.2016 Christmas Day
我真的很感激一些提示。谢谢!