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

我有一个表有A,B,C三条物料,每个物料都1月,2月,3月三条记录价格的记录,如何通过SQL搜索出这三个物料最新的时间的价格?急物料时间价格a2001-1-11a2002... 我有一个表有A,B,C三条物料,每个物料都1月,2月,3月三条记录价格的记录,如何通过SQL搜索出这三个物料最新的时间的价格?急
物料 时间 价格
a 2001-1-1 1
a 2002-1-2 8
a 2003-3-2 1
b 2001-1-1 1
b 2002-1-2 3
b 2003-3-2 1
c 2001-1-1 2
c 2002-1-2 1
c 2003-3-2 9

我要通过SQL查询出a,b,c三个物料最新时间的单价,最终结果如下,请教大家如何写这个程序,我实际的记录很多,不可能一个个筛选,请大家帮忙,急。。。
编码 时间 价格
a 2003-3-2 1
b 2003-3-2 1
c 2003-3-2 9
展开
 我来答
yinyan78
推荐于2017-11-23 · TA获得超过145个赞
知道小有建树答主
回答量:106
采纳率:100%
帮助的人:94.8万
展开全部
能把表结构发来看一下吗?
假设表结构如下:
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.物料)

我已经测试通过,如果你测试不通的话,就要考虑你字段类型是否跟我定义的一致
卷琇晶后铃
2016-04-17 · TA获得超过3万个赞
知道大有可为答主
回答量:1.1万
采纳率:27%
帮助的人:691万
展开全部
物料品类:name
时间
date
价格
pri
如果你的数据像你写的这样录入,各品类的更新时间都是一致的情况下,可以这样:
select
*
from
table
order
by
date
desc
rownum<=物料品类数
如果你不能确定更新时间是否一致,就比较麻烦了,恐怕只能一个一个筛选了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wuyouqin2
2010-07-12 · TA获得超过281个赞
知道小有建树答主
回答量:311
采纳率:0%
帮助的人:301万
展开全部
select * from table order by date desc limit 1
按照时间的降序排列 然后取第一条数据就行了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友0bdfeba59
2010-07-14 · TA获得超过566个赞
知道答主
回答量:306
采纳率:0%
帮助的人:199万
展开全部
物料品类:name 时间 date 价格 pri

如果你的数据像你写的这样录入,各品类的更新时间都是一致的情况下,可以这样:
select * from table order by date desc rownum<=物料品类数
如果你不能确定更新时间是否一致,就比较麻烦了,恐怕只能一个一个筛选了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zero_first
2010-07-16 · TA获得超过603个赞
知道小有建树答主
回答量:908
采纳率:0%
帮助的人:632万
展开全部
把时间转换成数字格式再进行比较即可,或者与系统时间对比,获取时间差,得到最小的时间差也行
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式