如何从 Mysql 查询中获取下一行值
How to get next row value from Mysql Query
我想使用 SQLYog 从 MySql 查询中获取 (select) 下一行值,其中
一样id_voyage_order?
示例:
id_timesheet | id_voyage_order | Duration
----------------------------------------
1 | 106 | 0.00
2 | 106 | 24.00
3 | 210 | 12.00
4 | 106 | 12.00
5 | 210 | 24.00
我想 select 它并在查看文件 Yii 中基于相同的 id_voyage 命令变成这样并将最后一条记录的持续时间设置为 0 :
id_timesheet | id_voyage_order | Duration
1. | 106 | 24.00
2. | 106 | 12.00
4. | 106 | 0.00
例如:
SELECT a.id_timesheet
, a.id_voyage_order
, COALESCE(b.duration,0) duration
FROM my_table a
LEFT
JOIN
( SELECT x.*
, MAX(y.id_timesheet) previous
FROM my_table x
JOIN my_table y
ON y.id_voyage_order = x.id_voyage_order
AND y.id_timesheet < x.id_timesheet
GROUP
BY x.id_timesheet
) b
ON b.previous = a.id_timesheet
WHERE a.id_voyage_order = 106;
我想使用 SQLYog 从 MySql 查询中获取 (select) 下一行值,其中 一样id_voyage_order?
示例:
id_timesheet | id_voyage_order | Duration
----------------------------------------
1 | 106 | 0.00
2 | 106 | 24.00
3 | 210 | 12.00
4 | 106 | 12.00
5 | 210 | 24.00
我想 select 它并在查看文件 Yii 中基于相同的 id_voyage 命令变成这样并将最后一条记录的持续时间设置为 0 :
id_timesheet | id_voyage_order | Duration
1. | 106 | 24.00
2. | 106 | 12.00
4. | 106 | 0.00
例如:
SELECT a.id_timesheet
, a.id_voyage_order
, COALESCE(b.duration,0) duration
FROM my_table a
LEFT
JOIN
( SELECT x.*
, MAX(y.id_timesheet) previous
FROM my_table x
JOIN my_table y
ON y.id_voyage_order = x.id_voyage_order
AND y.id_timesheet < x.id_timesheet
GROUP
BY x.id_timesheet
) b
ON b.previous = a.id_timesheet
WHERE a.id_voyage_order = 106;