我试图通过添加一列并标记一些行来指示它们是每次旅程的最后一站来改进一个运输计划表。执行更新的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