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 展开
物料 时间 价格
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 展开
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.物料)
我已经测试通过,如果你测试不通的话,就要考虑你字段类型是否跟我定义的一致
假设表结构如下:
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.物料)
我已经测试通过,如果你测试不通的话,就要考虑你字段类型是否跟我定义的一致
展开全部
物料品类:name
时间
date
价格
pri
如果你的数据像你写的这样录入,各品类的更新时间都是一致的情况下,可以这样:
select
*
from
table
order
by
date
desc
rownum<=物料品类数
如果你不能确定更新时间是否一致,就比较麻烦了,恐怕只能一个一个筛选了。
时间
date
价格
pri
如果你的数据像你写的这样录入,各品类的更新时间都是一致的情况下,可以这样:
select
*
from
table
order
by
date
desc
rownum<=物料品类数
如果你不能确定更新时间是否一致,就比较麻烦了,恐怕只能一个一个筛选了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select * from table order by date desc limit 1
按照时间的降序排列 然后取第一条数据就行了
按照时间的降序排列 然后取第一条数据就行了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
物料品类:name 时间 date 价格 pri
如果你的数据像你写的这样录入,各品类的更新时间都是一致的情况下,可以这样:
select * from table order by date desc rownum<=物料品类数
如果你不能确定更新时间是否一致,就比较麻烦了,恐怕只能一个一个筛选了。
如果你的数据像你写的这样录入,各品类的更新时间都是一致的情况下,可以这样:
select * from table order by date desc rownum<=物料品类数
如果你不能确定更新时间是否一致,就比较麻烦了,恐怕只能一个一个筛选了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把时间转换成数字格式再进行比较即可,或者与系统时间对比,获取时间差,得到最小的时间差也行
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询