У меня есть список записей таблицы, который я получил с помощью хранимой процедуры
Таблица

здесь я получил 8 сенсорных записей за каждую минуту и их tempStatus, humStatus.
состояние, которое я хочу, это
1. если весь статус для определенного промежутка времени получает Pass, тогда я должен удалить все записи этого диапазона dataDateTime.
2. если какой-либо из 8 датчиков температуры или датчика не работает в течение определенного промежутка времени, тогда мне нужно выбрать все записи за этот промежуток времени.
Значит, я хочу это

Здесь хранится процедура, из которой я получаю эти записи
SELECT [MachineID]
,sum([TempatureSetValue]) AS [TempatureSetValue]
,sum([HumiditySetValue]) AS [HumiditySetValue]
,sum([TempaturePresentValue]) AS [TempaturePresentValue]
,sum([HumidityPresentValue]) AS [HumidityPresentValue]
,[DataDateTime]
,[RealSensorID] as SensorId
,(CASE WHEN ( SUM([TempaturePresentValue]) > @maxTAlarm OR SUM([TempaturePresentValue]) < @minTAlarm ) THEN 'FAIL' ELSE 'PASS' END) AS TempStatus
,(CASE WHEN (sum([HumidityPresentValue]) > @maxHAlarm OR sum([HumidityPresentValue]) < @minHAlarm) THEN 'FAIL'ELSE 'PASS' END) AS HumStatus
FROM tblData
WHERE DataDateTime BETWEEN @startDate AND @endDate AND MachineID =@machineId
GROUP BY [RealSensorID]
,[DataDateTime]
,[MachineID]
ORDER BY [DataDateTime]
,[RealSensorID]
поскольку база данных слишком велика, это также требует времени,
Мне нужно решение, чтобы получить этот результат с помощью хранимой процедуры или с помощью LINQ в коде C #.