首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

指定一个日期,查询全部货品在这个日期前最近一次的库存数

2013-09-05 
指定一个日期,查询所有货品在这个日期前最近一次的库存数本帖最后由 sc1999vip 于 2013-08-26 20:01:36 编

指定一个日期,查询所有货品在这个日期前最近一次的库存数
本帖最后由 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

热点排行