读书人

指定一个日期查询全部货品在这个日期

发布时间: 2013-09-05 16:02:07 作者: rapoo

指定一个日期,查询所有货品在这个日期前最近一次的库存数
本帖最后由 sc1999vip 于 2013-08-26 20:01:36 编辑 [align=left] 货品代码 货品名称 出库数量 出库日期

JC31-00155A激光打印机用马达10.002013-8-23 0:00:00
JC31-00093B激光打印机用马达10.002013-8-23 0:00:00
JC31-00155B激光打印机用马达8.002013-8-23 0:00:00JC31-00155A激光打印机用马达40.002013-8-24 0:00:00JC31-00155A激光打印机用马达40.002013-8-25 0:00:00JC31-00093B激光打印机用马达40.002013-8-25 0:00:00
JC31-00093B激光打印机用马达10.002013-8-26 0:00:00[/align]

在上面这个表中,共有三种货品,假如我输入一个日期 2013-08-25,我想查询出这三种货品,在8月25日前最近的一次出库数量。问一下用SQL改怎么写?

上面这个表中,我想要的查询结果是:

JC31-00155B激光打印机用马达8.002013-8-23 0:00:00
JC31-00155A激光打印机用马达40.002013-8-25 0:00:00
JC31-00093B激光打印机用马达40.002013-8-25 0:00:00

请帮帮忙。


[解决办法]
如果是sql server2005以上,还有下面的方法

select a.* 
from (select *,rn=ROW_NUMBER() OVER(partition by 货品代码 order by 出库日期 desc)
where convert(varchar(10),出库日期,120)<='2013-08-25'
)a
where rn=1

读书人网 >SQL Server

热点推荐