更新自联接查询需要太长时间才能运行

时间:2018-05-16 05:11:54

标签: sql-server tsql sql-server-2012 self-join

我正在重新构建我的问题如下:

我在一个表上查询,运行时间比平时长。在同一个表上有其他插入/更新查询,但它们似乎运行正常。所以我给出了查询创建问题如下:

表格中的列最初是:

  • 雇员
  • BusUnitID
  • SkillID
  • 状态
  • 严重性
  • 开始日期
  • BackgroundStatus


alter table fOSMHistory
add RowID int identity,
    FromRowID int,
    LastRowID int,
    LastStatus varchar(10),
    LastSeverity int,ApprLeaveID int;

在每个蓝色结束日期之前找到最后的颜色状态:

Update fOSMHistory
set LastStatus = cs.Status,
    LastSeverity = cs.Severity
from fOSMHistory cs join fOSMHistory ce -- Colour Start and Colour end
    on cs.RowID = ce.LastRowID
join fOSMHistory -- Blue Ends
    on fOSMHistory.Status = 'BlueEnd'
    and cs.employeeid = fOSMHistory.employeeid
    and cs.SkillID = fOSMHistory.SkillID
    and fOSMHistory.StartDate between cs.StartDate and ce.StartDate‌‌

表格中的样本数据如下:     enter image description here

最初添加的列将在最终查询中删除,这就是它们在最终数据中不可见的原因

0 个答案:

没有答案