SQL多个记录取时间最近的值

2025-03-11 05:01:54
推荐回答(5个)
回答1:

能把表结构发来看一下吗?
假设表结构如下:
talbeA(wlname,price ,dtime)
查询结果如下:

select wlname,price ,dtime
from tableA X
where dtime =
(select max(dtime)
from tableA Y
where Y.wlname=X.wlname)
其中wlname表示物料名字
按照你的修改如下:只不过把tableA改为你的表名即可

select 物料,时间,价格
from tableA X
where 时间=
(select max(时间)
from tableA Y
where X. 物料=Y.物料)

我已经测试通过,如果你测试不通的话,就要考虑你字段类型是否跟我定义的一致

回答2:

物料品类:name
时间
date
价格
pri
如果你的数据像你写的这样录入,各品类的更新时间都是一致的情况下,可以这样:
select
*
from
table
order
by
date
desc
rownum<=物料品类数
如果你不能确定更新时间是否一致,就比较麻烦了,恐怕只能一个一个筛选了。

回答3:

select * from table order by date desc limit 1
按照时间的降序排列 然后取第一条数据就行了

回答4:

物料品类:name 时间 date 价格 pri

如果你的数据像你写的这样录入,各品类的更新时间都是一致的情况下,可以这样:
select * from table order by date desc rownum<=物料品类数
如果你不能确定更新时间是否一致,就比较麻烦了,恐怕只能一个一个筛选了。

回答5:

把时间转换成数字格式再进行比较即可,或者与系统时间对比,获取时间差,得到最小的时间差也行