我有一个通过存储过程获取的表记录列表
在这里,我每分钟有8条传感器记录及其tempStatus humStatus。
我想要的条件是 1.如果特定时间跨度的所有状态都通过,那么我必须删除该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]
由于数据库太大,还需要时间, 我需要一种解决方案来通过存储过程或在C#代码中使用LINQ来获得此结果。