91 lines
2.9 KiB
Plaintext
91 lines
2.9 KiB
Plaintext
DECLARE @i int
|
|
DECLARE @j int
|
|
DECLARE @ChannelId int
|
|
DECLARE @SensorId int
|
|
DECLARE @numChannelRows int
|
|
DECLARE @numSensorRows int
|
|
DECLARE @ZeroMethod NVARCHAR(255)
|
|
DECLARE @ZeroMethodType NVARCHAR(255)
|
|
DECLARE @ZeroMethodStart NVARCHAR(255)
|
|
DECLARE @ZeroMethodEnd NVARCHAR(255)
|
|
DECLARE @delimIndex int
|
|
DECLARE @startIndex int
|
|
|
|
DECLARE @channelidtable TABLE (
|
|
idx int Primary Key IDENTITY(1,1)
|
|
, ChannelId int
|
|
)
|
|
|
|
CREATE TABLE #channelidtable(
|
|
idx int Primary Key IDENTITY(1,1)
|
|
, ChannelId int
|
|
)
|
|
|
|
INSERT #channelidtable
|
|
SELECT DISTINCT ChannelId FROM GroupChannelSettings WHERE ChannelId IN
|
|
(SELECT Id FROM Channels WHERE SensorId IN
|
|
(SELECT id FROM Sensors WHERE id in
|
|
(SELECT SensorId FROM Channels)
|
|
AND SensorType = 0))
|
|
|
|
SET @i = 1
|
|
SET @numChannelRows = (SELECT COUNT(*) FROM @channelidtable)
|
|
IF @numChannelRows > 0
|
|
WHILE (@i <= (SELECT COUNT(*) FROM @channelidtable))
|
|
BEGIN
|
|
SET @ChannelId = (SELECT ChannelId FROM @channelidtable WHERE idx = @i)
|
|
|
|
DECLARE @sensoridtable TABLE (
|
|
sensorIdx int Primary Key IDENTITY(1,1)
|
|
, sensorId int
|
|
)
|
|
CREATE TABLE #sensoridtable(
|
|
sensorIdx int Primary Key IDENTITY(1,1)
|
|
, sensorId int
|
|
)
|
|
INSERT #sensoridtable
|
|
SELECT SensorId FROM Channels WHERE Id = @ChannelId AND SensorId IN
|
|
(SELECT id FROM Sensors WHERE SensorType = 0)
|
|
|
|
SET @j = (SELECT MIN(sensorIdx) FROM #sensoridtable)
|
|
SET @numSensorRows = (SELECT COUNT(*) FROM #sensoridtable)
|
|
IF @numSensorRows > 0
|
|
WHILE (@j <= (SELECT COUNT(*) FROM #sensoridtable))
|
|
BEGIN
|
|
SET @SensorId = (SELECT SensorId FROM #sensoridtable WHERE sensorIdx = @j)
|
|
|
|
SET @ZeroMethod = (SELECT ZeroMethod FROM SensorCalibrations WHERE
|
|
SensorId = @SensorId AND
|
|
ModifyDate = (SELECT MAX (ModifyDate) FROM SensorCalibrations WHERE SensorId = @SensorId))
|
|
|
|
SET @startIndex = 0
|
|
SET @delimIndex = CHARINDEX(',', @ZeroMethod, @startIndex)
|
|
SET @ZeroMethodType = SUBSTRING(@ZeroMethod, 0, @delimIndex)
|
|
INSERT INTO GroupChannelSettings VALUES (@ChannelId, 20, @ZeroMethodType)
|
|
|
|
IF @ZeroMethodType = 'AverageOverTime'
|
|
BEGIN
|
|
SET @startIndex = @delimIndex + 1
|
|
SET @delimIndex = CHARINDEX(',', @ZeroMethod, @startIndex)
|
|
SET @ZeroMethodStart = SUBSTRING(@ZeroMethod, @startIndex, @delimIndex - @startIndex)
|
|
INSERT INTO GroupChannelSettings VALUES (@ChannelId, 21, @ZeroMethodStart)
|
|
|
|
SET @startIndex = @delimIndex + 1
|
|
SET @delimIndex = LEN(@ZeroMethod) + 1
|
|
SET @ZeroMethodEnd = SUBSTRING(@ZeroMethod, @startIndex, @delimIndex - @startIndex)
|
|
INSERT INTO GroupChannelSettings VALUES (@ChannelId, 22, @ZeroMethodEnd)
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
INSERT INTO GroupChannelSettings VALUES (@ChannelId, 21, '-0.05')
|
|
INSERT INTO GroupChannelSettings VALUES (@ChannelId, 22, '-0.02')
|
|
END
|
|
SET @j = @j + 1
|
|
END
|
|
|
|
DROP TABLE #sensoridtable
|
|
|
|
SET @i = @i + 1
|
|
END
|
|
|
|
DROP TABLE #channelidtable |