我在 MSSQL 2008 中有一个包含 4 列 readdate、tagname、value 和 modifiedvalue 的表。前 3 列由早上 8 点运行的 sql 作业插入,包含从前一天早上 7 点到当天早上 7 点的每小时平均数据. 用户可以通过 Web 应用程序更改修改后的值。
我希望能够查看前几天的数据,如果修改值列中有一个值,那么第二天更新相同的范围。它将始终适用于相同的范围,即如果在前 24 小时内更改了 tagname1 的修改值,那么第二天将需要在该 24 小时期间的修改值列中显示相同的值。
这是我用来选择前几天时间段的代码
SELECT coalesce(amendedValue, value),
readDate,
tagName,
amendedValue,
value
FROM gasdata
WHERE tagname ='35FI8316'
AND readDate
BETWEEN DateAdd(Hour, 7, DateAdd(DAY, DateDiff(DAY, 0, GETDATE()), -1))
AND dateadd(hour, 6, DATEADD(DAY, DATEDIFF(DAY, 0, GETDATE()), 0))
ORDER BY readDate
我只是不知道如何开始,我相信它应该是这样的
如果 modifiedvalue 在此时间段内有值,则在下一个时间段内更新修改后的值。
有点复杂希望它有意义