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