将fte表转换为多行

时间:2016-06-20 08:48:16

标签: sql sql-server

第一张表显示了年内正在改变FTE的员工数据。基于此我想调整第二个表(显示缺席)。

我需要向FTE表明其缺席情况。例如,第一行(来自第二个表格)它发生2016-05-09 - 2016-05-09因此很容易FTE 0.74

问题发生在第二行(在缺席表中),在第一个表的3个不同的FTE变化期间发生了缺席(如下图所示)

你能帮我解决这个问题吗?我的预期结果在第3个表格中。

enter image description here

1 个答案:

答案 0 :(得分:0)

这将在您的示例中实现结果

    update a
    set a.type=FTE.FTE
    from Absense a
    inner join FTE on a.Start_date>=fte.Start_date and a.EndDate<=fte.End_Date
    where FTE.type is null

但是需要更精确地定义需求,因为在处理包含多个FTE日期范围的日期范围时会出现复杂情况。一旦规则&#39;对于日期和交叉bounadaries的边缘情况是明确定义的,正确的查询可能比这更复杂。