1
在我的简单示例场景中,我的目标是返回最接近70度的传感器温度(称为“TemperatureOfRecord”),给定特定的时间戳和建筑物。例如,对于早上8点的时间戳建立#1的TemperatureOfRecord是65度,因为65度比80度更接近70度。 “Delta”列是计算列,返回传感器温度的绝对值减去70度。我使用差分来测试每个传感器温度与70度的目标温度。根据函数结果返回函数参数
下面的嵌套相关子查询会返回正确的结果,但我在为实际场景扩展此方法时遇到了很多问题。因此,我想问问是否有更简单的方法可以使用。
SELECT
tt.TmStamp
, tt.Building
, tt.Sensor
, tt.Temperature
, tt.Delta
, (SELECT tt2.Temperature
FROM dbo.TempTest tt2
WHERE tt2.Building = tt.Building
AND tt2.TmStamp = tt.TmStamp
AND tt2.Delta =
(SELECT MIN(tt3.Delta)
FROM dbo.TempTest tt3
WHERE tt3.Building = tt.Building
AND tt3.TmStamp = tt.TmStamp)
) AS TemperatureOfRecord
FROM dbo.TempTest tt
以上查询的结果如下。
这样做的伎俩! @Matt非常感谢。 – MikeyWazz 2013-02-23 23:30:56