在字段值中第一次更改后排除记录

时间:2014-06-02 13:15:31

标签: sql ms-access

我有下表:

AnswerBaseID    EpisodeSetID    EpisodeNumber   ProposedTreatmentID_OD
107                 95          1               2
108                 95          2               3
109                 96          1               2
110                 96          2               3
111                 96          3               2
120                 103         1               2
121                 103         2               2
EpisodeSets有不同数量的剧集:EpisodeSet 95有2集剧集,EpisodeSet 96有3集剧集,EpisodeSet 103有两集剧集。所有剧集都以一个可能在随后的剧集中改变的建议处理2开始。 例如,在EpisodeSet 96中,剧集在第二集剧集号中设置从2变为3。我希望在第一次更改之后排除所有记录,直到出现不同的数字。

所以在EpisodeSet 96中,我想排除第2集和第3集,即使第3集再次是建议的治疗2。最后,我希望我的结果如下:

AnswerBaseID    EpisodeSetID    EpisodeNumber   ProposedTreatmentID_OD
107                 95          1               2

109                 96          1               2

120                 103         1               2
121                 103         2               2

我该如何撰写这样的查询?

1 个答案:

答案 0 :(得分:0)

听起来您希望根据EpisodeSetId保留每个EpisodeNumber的第一条记录。

以下是一种适用于所有数据库的方法:

select t.*
from table t
where not exists (select 1
                  from table t2
                  where t2.EpisodeSetId = t.EpisodeSetId and
                        t2.EpisodeNumber < t.EpisodeNumber
                 );