1

考勤登记册有以下列:

ID          Numeric Auto Increment  
Employee    ID Int  
Attendance  Bit

我需要找到

  1. 有多少员工连续请了“n”天或更多天的假。
  2. 工作日前后正好有 n 天的假期。例如:工作日前两天和工作日后两天
    ,其中“n”是输入参数。

在此处输入图像描述

到目前为止,我已经完成了简单的查询。但是寻找一个不断出现的价值对我来说是新鲜事。一些身体可以帮助从哪里开始..

4

1 回答 1

1

我不知道如何在查询中编写它,但算法将类似于:

为每个员工创建一个缺勤列表,格式为: [1, 3, 2, 2] 其中每个元素表示连续工作天数后的连续缺勤天数。在这种情况下,例如

[False, True, True, False, False, False, True, True, False, False, True, False, False]
 <-1--> Work days   <---------3------->  Work days   <----2----->  Work  <----2----->

现在可以通过在数组中找到 >= n 的数字来实现要求 (1)

可以通过在数组中找到两个具有值 n 的连续数字来检查要求 (2)。(这个解决方案是不正确的,工作日的天数也应该被存储,可能在一个相同长度的数组中,但我把这个留给用户)。

于 2013-05-07T11:16:22.713 回答