SQL多个记录取时间最近的值
发布网友
发布时间:2022-04-10 00:27
我来回答
共8个回答
热心网友
时间:2022-04-10 01:56
能把表结构发来看一下吗?
假设表结构如下:
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.物料)
我已经测试通过,如果你测试不通的话,就要考虑你字段类型是否跟我定义的一致
热心网友
时间:2022-04-10 03:14
物料品类:name
时间
date
价格
pri
如果你的数据像你写的这样录入,各品类的更新时间都是一致的情况下,可以这样:
select
*
from
table
order
by
date
desc
rownum<=物料品类数
如果你不能确定更新时间是否一致,就比较麻烦了,恐怕只能一个一个筛选了。
热心网友
时间:2022-04-10 04:49
select * from table order by date desc limit 1
按照时间的降序排列 然后取第一条数据就行了
热心网友
时间:2022-04-10 06:40
物料品类:name 时间 date 价格 pri
如果你的数据像你写的这样录入,各品类的更新时间都是一致的情况下,可以这样:
select * from table order by date desc rownum<=物料品类数
如果你不能确定更新时间是否一致,就比较麻烦了,恐怕只能一个一个筛选了。
热心网友
时间:2022-04-10 08:48
把时间转换成数字格式再进行比较即可,或者与系统时间对比,获取时间差,得到最小的时间差也行
热心网友
时间:2022-04-10 11:13
oracle
可以直接函数取
greatest(repdate,repcreatedate,repaudittime,printime)
mssqlserver可能先列转行求分组最大,没有测试环境,忘记了
热心网友
时间:2022-04-10 13:54
select top 1 price from 表 order by month desc
热心网友
时间:2022-04-10 16:52
select top 1 jiage from tablename order by date desc