2010-06-07 29 views
1

我想在一個時間範圍內獲得兩個值的差異。通過SQL中的時差獲取值

所以我有這樣

數據表

TimeStamp  DataValue 
2010-06-01  21 
2010-06-03  33 
2010-06-05  44 

表所以我想先得到在過去的一個月,我可以喜歡的東西做的所有數據。

([TimeStamp] < GETDATE()-0 and ([TimeStamp] > GETDATE()-31) 

但我想看看在一個月的過程中增加了多少價值。所以它從21開始到44,所以我期望這個例子返回23(如44-21)。

我該如何構建這樣的查詢?

回答

1

我知道這在MySQL中有效。我不能承諾其他數據庫。

SELECT MAX(DataValue) - MIN(DataValue) FROM TABLE 
WHERE ([TimeStamp] < GETDATE()-0 
AND ([TimeStamp] > GETDATE()-31) 
+1

這應該有效,但只有當月份開始時的最低值和月末的最高值。 – 2010-06-07 17:50:34

+0

我試圖讓這個過於複雜。思考我會以某種方式獲得第一個價值的別名和所有。 – Maestro1024 2010-06-07 17:50:57

+0

這將是另一種方式。如果價值可能上漲或下跌,這種方式可能是必要的。在這個問題上,我從你的語言中假設他們只能隨着時間的推移而增加。 – CoreyD 2010-06-08 14:44:56