-3

我有一张这样的桌子:

id  …   value   …   date_added
1   …   value1  …   some date
1   …   value2  …   some date
1   …   value3  …   some date
1   …   value4  …   some date
2   …   value5  …   some date
2   …   value6  …   some date

我想要这样的东西:

id  …   value   …   date_start      date_end
1   …   value1  …   some date       some date
1   …   value2  …   some date       some date
1   …   value3  …   some date       some date
1   …   value4  …   some date       some date
2   …   value5  …   some date       some date
2   …   value6  …   some date       

所以一个查询来获取每行添加到表中的日期以及更改的日期。

你怎么做到这一点?非常感谢。

4

1 回答 1

1

您可以将结束日期查询为当前行之后的第一个更改日期:

select  id
,       value
,       date_start
,       (
        select  date_start
        from    YourTable yt2
        where   yt1.id = yt2.id
                and yt1.date_start < yt2.date_start
        order by
                yt2.date_start
        limit   1
        ) as date_end
from    YourTable yt1
于 2013-02-27T11:12:45.550 回答