2014-03-14 155 views
0

我有表,這樣的結構SQL查詢加入

CREATE TABLE #test 
(
    ID INT IDENTITY, 
    [Value] INT 
) 

,並希望從目前到前一行找到[超值]之間的差異只有一個連接運算符。 任何人都可以幫助我嗎?

+0

您使用的是什麼RDBMS? – Mureinik

+0

您可以先嚐試一下嗎? – fancyPants

+0

該死的功課... – Mihai

回答

1

目前還不清楚是什麼記錄是以前的給定目前一。假設該此前的紀錄是一個是立即之前,在當前記錄時,該表是通過ID排序的所有你需要的是解析函數沒有加入所有

select [Value] - lag([Value]) over (order by ID) 
    from #test 

但是您必須測試您的DBMS 是否支持分析函數(MS SQL,Oracle)

1
select (t1.value-t2.value) as difference 
from test t1 join test t2 on t1.id=t2.id-1 

如果您在ID中有空白,可能會出現問題。例如。 id = 1,2,3,10,11,12

如果指定RDBMC,可以建議更好的解決方案。