gpt4 book ai didi

mysql查询用前一行的值填充当前查询行

转载 作者:行者123 更新时间:2023-11-29 03:05:26 28 4
gpt4 key购买 nike

我有一个表,它有 intimeouttime 的日期时间字段。

我想做的是通过查询循环遍历表并将 intime 更改为以前记录的 outtime。

这样我的数据就会持续流动,不会有“时间损失”

下图显示了我当前的表格以及我想要实现的目标。

enter image description here你可以在这里找到这个例子的 fiddle : http://sqlfiddle.com/#!2/40b10/10

现在我明白表设计等并不是最优的,只是在寻找如何让它工作的逻辑。

总结。

如何使 inTime 等于当前 intime 之前的最新 outtime

我正在尝试做的事情的 soe 逻辑如下,但无法正常工作...

最佳答案

需要 ifnull 才能正确显示第一个 intime

SELECT mov.vehicle,
ifnull((SELECT max(temp.outtime)
FROM movement temp
WHERE temp.outtime< mov.intime),mov.intime) as intime_calc,
mov.outtime
FROM movement mov
ORDER BY mov.intime

http://sqlfiddle.com/#!2/40b10/23

如果您有一些记录,其中 intime 已经等于前一条记录 outtime,您可能希望将查询更改为:

SELECT mov.vehicle,
ifnull((SELECT max(temp.outtime)
FROM movement temp
WHERE temp.outtime<= mov.intime
AND mov.ID <> temp.ID),mov.intime) as intime_calc,
mov.outtime
FROM movement mov
ORDER BY mov.intime

关于mysql查询用前一行的值填充当前查询行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16302736/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com