我有一个 SQL Server 表,其中包含按日期和班次组织的不同设备的生产运行时间。
例如:
Date, Shift, Running Hours
7/11/14, 1, 4.2
我的问题是,工作日有 3 个 8 小时轮班,但周末有 2 个 12 小时轮班。无论一周中的哪一天,所有数据都基于 3 个班次进行存储。
用简单的英语来说,在周末我需要计算第二班的运行时间,将其除以二,然后将其添加到第一班和第三班的时间。此外,周末的第 1 班和第 3 班需要重新标记为第 4 班和第 5 班,因为它们的持续时间与工作日班次不同。
我无法触摸原始表中的数据,我基本上需要在另一个表(或视图?)中拥有数据的实时副本并在那里进行操作。我首先从母表创建一个视图,然后尝试执行更新语句。我刚开始只是更新班次号码,但我似乎无法让它起步。
使用视图甚至是正确的方法吗?更新视图会改变原始表中的值吗?或者我应该有另一个由存储过程填充的表,其中包含所有操作?
感谢您提供的任何帮助。对于任何格式问题,我深表歉意。这是我的第一篇文章。
SELECT TOP (100) PERCENT
ShiftNumber, TowerString,
convert(varchar,a.ShiftDateTime,101) AS Day, Running,
FROM
DBName.dbo.ShiftDetails
UPDATE
v_ViewName
SET
ShiftNumber = 4
WHERE
DATENAME(dw, Day) = 'Saturday' AND ShiftNumber = 1