我試圖通過添加一列並標記一些行來指示它們是每次旅程的最後一站來改進一個運輸計劃表。執行更新的SQLITE語法錯誤
每趟旅行都會有很多行顯示行程中的行程和順序。如果序列號是該行程中最高的,我想用'1'更新LastStop列。
我認爲以下SQL在正確的軌道上,但我得到一個「沒有這樣的列:s1.stop_sequence」,所以我不知道如果我甚至在正確的軌道上,直到這不明顯的我的錯誤已解決。我是一個幾乎超越新手級別的SQL輕量級。 Stop_Sequence絕對是該列的正確名稱。
UPDATE stop_times
SET LastStop = '1'
WHERE stop_sequence =(
SELECT max(st.stop_sequence)
FROM stop_times s1
WHERE s1.trip_id = trip_id
)
AND
trip_id = s1.trip_id
AND
stop_ID = s1.stop_id;
樣本數據的簡化版本如下。
TripID Stop Sequence LastStop
665381 1766 1
665381 3037 2
665381 3038 3 1
667475 1130 1
667475 2504 2 1
644501 2545 1
644501 3068 2
644501 2754 3
644501 3069 4
644501 2755 5 1
查詢中和示例數據中的列名稱不匹配。別名是's1'還是'st'? – 2013-02-13 08:13:05