员工的SQL时间表

员工的SQL时间表,sql,shift,timetable,Sql,Shift,Timetable,我需要创建一个员工轮班数据库。到目前为止,我有3个表,employee、employee\u shift和shift 我的问题是,我想计算一个员工在月底轮班的次数,因为一个月有30天,有些有28天和31天 这意味着我需要在轮班表中创建31个不同的变量?一个月的每一天一个?为了计算哪个员工工作最多 在我的业务关系中,它说一名员工每天有1或2个班次,因此我必须有60行不同的变化吗?我是对的,或者有没有一个简单的方法来解决这个问题呢?我也会坚持三张表,员工表、轮班表和员工表。最后一个表将包含日期、in

我需要创建一个员工轮班数据库。到目前为止,我有3个表,employee、employee\u shift和shift

我的问题是,我想计算一个员工在月底轮班的次数,因为一个月有30天,有些有28天和31天

这意味着我需要在轮班表中创建31个不同的变量?一个月的每一天一个?为了计算哪个员工工作最多


在我的业务关系中,它说一名员工每天有1或2个班次,因此我必须有60行不同的变化吗?我是对的,或者有没有一个简单的方法来解决这个问题呢?我也会坚持三张表,员工表、轮班表和员工表。最后一个表将包含日期、in time和out time列。上班时间和下班时间是确定员工正在做哪一班的关键。因此,我可以计算一个月内员工的班次数量和班次明细。这将很简单。

我将使用以下三个表格:

Employee - EmployeeId, EmployeeName etc.
ShiftRecords - ShiftRecordId, EmployeeId, InTime, OutTime
Shift - ShiftId, ShiftStartTime, ShiftEndTime
如果轮班时间可能不同,则可以在轮班表中包括轮班开始日期和结束日期以及IsActive列

  • 不能将数据插入时间戳列。用时间代替
  • 您不能将Emp_Id和Shift_Id作为主键,因为这会重复。如果您确实需要主键,请添加另一列,例如Shift\u Record\u Id

  • 就创建脚本而言,它应该很简单。你所需要的只是找出一个逻辑,并阅读我们可以在其中使用的select语句和可用关键字。

    不,你不需要,你应该找人帮助你设计,因为如果你尝试一个60字段的表,你基本上是在盲目地尝试设计sql数据库。请公司里的人帮助你。懂得SQL基础知识的人。然后学习;)回到RDBMS和规范化的基础。设置如此多的字段会限制您的灵活性,只会使复杂性增加很多倍。您能否创建一个select语句来显示某个月最高班次的emp