我有一個包含電動馬達數據的表格,格式如下:數據歷史查詢
DATE(DateTime)|標籤名(VARCHAR(50)|纈氨酸(浮點型)|
2009-11-03 17:44:13.000 | Motor_1 | 123.45
2009-11-04 17:44:13.000 | Motor_1 | 124.45
2009-11-05 17:44:13.000 | Motor_1 | 125.45
2009-11-03 17:44:13000 | Motor_2 | 223.45
2009-11-04 17:44:13.000 | Motor_2 | 224.45
每臺電機的數據都是每天插入的,因此將會有31臺Motor_1和31臺電機等。我們這樣做是爲了讓我們能夠在控制系統顯示屏上進行設計。 我正在使用視圖來提取上個月最大值val和上個月最小值val。 這個月的數據也一樣。然後我加入兩者並計算差異 以獲得該月的實際運行小時數。 「Val」是不可重複的 從PLC(控制器)累計。這是我最近幾個月查詢最大 值:
SELECT TagName, Val AS Hours
FROM dbo.All_Data_From_Last_Mon AS cur
WHERE (NOT EXISTS
(SELECT TagName, Val
FROM dbo.All_Data_From_Last_Mon AS high
WHERE (TagName = cur.TagName) AND (Val > cur.Val)))
這是我的查詢最近幾個月最大 值:
SELECT TagName, Val AS Hours
FROM dbo.All_Data_From_Last_Mon AS cur
WHERE (NOT EXISTS
(SELECT TagName, Val
FROM dbo.All_Data_From_Last_Mon AS high
WHERE (TagName = cur.TagName) AND (Val < cur.Val)))
這是計算的差異,緩慢運行了一下查詢:
SELECT dbo.Motors_Last_Mon_Max.TagName, STR(dbo.Motors_Last_Mon_Max.Hours - dbo.Motors_Last_Mon_Min.Hours, 12, 2) AS Hours
FROM dbo.Motors_Last_Mon_Min RIGHT OUTER JOIN
dbo.Motors_Last_Mon_Max ON dbo.Motors_Last_Mon_Min.TagName = dbo.Motors_Last_Mon_Max.TagName
我知道還有更好的辦法。最終,我只需要上個月總計和本月總計。任何幫助,將不勝感激。
在此先感謝
我認爲這是我需要的。我會再測試一下。 萬分感謝! –
您發佈的第一部分幫助了很多。我也會嘗試下一部分。 再次感謝 –