如何从满足某些条件的列表中删除记录组

时间:2019-06-21 10:29:51

标签: c# sql-server linq

我有一个通过存储过程获取的表记录列表

表格

enter image description here

在这里,我每分钟有8条传感器记录及其tempStatus humStatus。

我想要的条件是 1.如果特定时间跨度的所有状态都通过,那么我必须删除该dataDateTime时间跨度的所有记录。 2.如果8个传感器的温度中的任何一个或传感器在该时间跨度内出现故障,那么我必须选择该时间跨度的所有记录。

我想要这个 enter image description here

这是我从中获取记录的存储过程

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来获得此结果。

0 个答案:

没有答案