指定一个日期,查询所有货品在这个日期前最近一次的库存数
本帖最后由 sc1999vip 于 2013-08-26 20:01:36 编辑
[align=left] 货品代码 货品名称 出库数量 出库日期
JC31-00155A 激光打印机用马达 10.00 2013-8-23 0:00:00
JC31-00093B 激光打印机用马达 10.00 2013-8-23 0:00:00
JC31-00155B 激光打印机用马达 8.00 2013-8-23 0:00:00 JC31-00155A 激光打印机用马达 40.00 2013-8-24 0:00:00 JC31-00155A 激光打印机用马达 40.00 2013-8-25 0:00:00 JC31-00093B 激光打印机用马达 40.00 2013-8-25 0:00:00
JC31-00093B 激光打印机用马达 10.00 2013-8-26 0:00:00[/align]
在上面这个表中,共有三种货品,假如我输入一个日期 2013-08-25,我想查询出这三种货品,在8月25日前最近的一次出库数量。问一下用SQL改怎么写?
上面这个表中,我想要的查询结果是:
JC31-00155B 激光打印机用马达 8.00 2013-8-23 0:00:00
JC31-00155A 激光打印机用马达 40.00 2013-8-25 0:00:00
JC31-00093B 激光打印机用马达 40.00 2013-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