2010-09-30 34 views
1

對不起,模糊的標題,我不知道該怎麼說。SQL。查詢聚合某些依賴字段

假設你有一個表,在火車上站的下面的表格,這站和下之間的距離,比如:

Stop   NextStop  Distance 
------------------------------------ 
Middletown Bloomsbury  101 
Bloomsbury Shanksville 36 
Shanksville New City  53 
New City  Washington  339 
Washington Andover  48 

的問題是要確定停止X和Y.所以之間的距離例如,Middletown和Shanksville之間的距離是101 + 36 = 137。

有沒有辦法用單個查詢來做到這一點? (理想情況下,我正在尋找一種方法,通過使用上一行的NextStop字段作爲下一行的關鍵字,然後將它們的距離收集到列中來反覆遍歷停止列。)

謝謝!

回答

0

在Oracle中,我覺得這樣的事情可能工作:

Select sum(distance) 
from train_stops 
start with stop = 'Middletown' 
connect by stop = prior nextstop; 
+0

謝謝!你碰巧知道是否有一個通用的SQL解決方案? – Jake 2010-09-30 17:12:59

+0

@Jake:不確定。你使用的是什麼DBMS? Oracle不是唯一支持遞歸查詢的人,但是語法可能略有不同。 – FrustratedWithFormsDesigner 2010-09-30 17:13:56

+0

我沒有綁定到特定的實現。我的意思是,我試圖解決這個問題,並且對於每個距離段都有多個查詢似乎過分。也許我的單一查詢方法是不正確的。 – Jake 2010-09-30 17:19:55