我需要根据表1中给定的休假频率重复表2中的休假模式。
频率:意味着它可以是7的倍数,比如(7,14,21,28等等)
休息周:对于每个员工,休息周可以是第n行。
请找到sql小提琴演示http://sqlfiddle.com/#!18/7cb68a/2号
在给定的屏幕截图中,如果您注意到“whatisgetting”字段,那么它只工作了两周,之后它将变为空bcz ruletabletemp.shiftid与tempmaintable.shiftid不匹配。
我需要一个Maven的帮助,就我的要求,重复一个星期的假期为给定的日期范围基于给定的ruletabletemp.weekofffrequencyindays。
现在在演示中,我已经使用了'7'作为一个硬编码的值,用于像这样的休假频率
((te.Id / 7) + 1 )
请查看屏幕截图以了解更多说明。
请随时询问是否有任何信息是误导性的或没有清除。
注意:现在我只举了一个实际场景中的员工的例子,可能是第n个员工,每个员工都应该在给定的日期范围内根据给定的休假频率重复休假。。。
要记住的条件或要点:
ruletabletemp:目前我们为每位员工提供两种轮班模式,但可能会有所不同,也可能是3或4种模式。
ruletabletemp文件名weekofffrequencyindays的employeeid(4536)值为“7”,但对于每个员工它也可以不同,例如yes。如果“4536”员工有4个条目,则weekofffrequencyindays值对于所有员工都相同。
例1:
if (RuleTableTemp.WeekOffFrequencyInDays == 7 ) {
// ShiftPattern's count is 2:
// ShiftPattern will switch after every 7 days.
}
例2:
if ( RuleTableTemp.WeekOffFrequencyInDays == 14) {
// if ShiftPattern's count is 3:
// ShiftPattern will keep switching between 3 patterns after every 14 days
}
例3:
if ( RuleTableTemp.WeekOffFrequencyInDays == 21) {
// if ShiftPattern's count is 1 means no switching is required
}
我花了将近一个小时来解释我的要求,但还是有人投了反对票,而不是问什么是不明确的。。。所以说看看这个……:(
1条答案
按热度按时间bmp9r5qi1#
这回答了问题的原始版本。
这种逻辑应该与变化相匹配:
注意,我在主表上添加了一个显式序列号。这只是为了确保数字是你真正想要的(自动生成的id可能是个问题)。
逻辑的关键是模运算——当序列号除以14时取余数,然后用它来匹配周。
这是一把小提琴。