根据一个相同编号查询出这个编号支付过的所有订单,然后需要获取到原订单的上一个订单的支付时间。举例,有1,2,3,三个订单,然后里面的订单编号不相同,record编号相同,根据record编号查出所有订单,订单3需要订单2的支付时间,订单2需要订单1的支付时间,求大神帮忙指教sql语句怎么写
查出相同record比该订单时间早的一条第一条数据。。。
sql不难。最简单的连接查询用rownum来展示就行,关键是以什么确定数据123的顺序呢。
SELECT * FROM (SELECT t.* ,t1.createtime lastcreate FROM test t LEFT JOIN test t1 ON t1.recordid = t.recordid AND t.createtime > t1.createtime ORDER BY t.id,t1.createtime DESC ) t2 GROUP BY t2.id
这个查询语句mysql的
可以懂吗 结果为null的就是订单1
select 支付时间 from tablename where 订单id = (select max(订单id) from tablename where 订单id < (select max(订单id) from tableName where record = '编号' ) and record='编号')
不知道你是不是要最大的订单号 的上一个订单号的支付时间
oracle里就简单了,用lag窗口函数即可:
select 订单id,订单信息,lag(支付时间,1) over(partition by record编号 order by 支付时间) 上一订单的支付时间
from 表
where record编号=&record编号