【发布时间】:2011-10-13 01:37:56
【问题描述】:
我正在尝试找出添加员工打卡总时间的最佳方法。
打孔类型为日间、休息、休息和休息。你会认为我可以只选择 * where date = DATE,但如果员工在晚上 11:30 到达并在第二天凌晨 2:00 离开,这将不起作用。
我在想这样的事情可能是最好的解决方案,但我不知道它是否实用甚至可能:
从 LAST RECORD 中选择 *,其中员工 = 员工在第一次“打卡”时停止。
这将收集自员工上次打卡以来的所有打卡次数。例如:
ID 名称类型时间
45 John Day In TIME
46 乔日在时间
47 玛丽爆发时间
48 乔休息时间
49 乔闯入时间
50 John Day Out TIME
51 玛丽闯关时间
52 乔外出时间
53 玛丽节外出时间
所以在我正在考虑的示例中,如果您要查找 Joe 的时间,它将从 53 号拳头开始向后搜索,直到到达 46 号拳头。结果将是 46、48、49 和 51 号拳。我然后可以计算总工作时间。再说一次,我不知道这是否可能。
我非常感谢任何有关如何完成此操作的 cmets/建议,或任何其他可能更实际的方法!
【问题讨论】:
-
如果数据库的结构不同似乎会很好。当有人打卡时,您会记录下来,当有人打卡时,您会找到他们最近的打卡时间并为其添加外出时间。但我认为这超出了你的控制范围,或者有不同的理由采用这种结构。
-
我同意@Jefromi。更改数据库的结构将使系统更易于使用。它还可以更容易地找到人们忘记打卡的情况。虽然这可能不在你的控制范围内。
-
我会以任何需要的方式对其进行重组......这就是我要求任何其他建议的原因。什么是最好的???
-
@user971230:我不是数据库设计专家,我不知道你的所有要求,但如果你的主要要求是知道人们在那里呆了多久,我在我的建议中建议的结构第一条评论是一个合理的起点。
-
这会更简单,但我需要跟踪它是休息打卡还是一天打卡。我需要能够查看员工是在当天下班还是在休息时间。 PS-这是我的问题的一部分-我如何找到最近的打卡?