我有一个类似如下的表格,用于显示库存详细信息。
库存表。
InventoryTableID DateCreated quantity ItemName
-------------------------------------------------
1 2010-02-04 12 abc
2 2010-03-10 4 abc
3 2010-03-13 5 xyz
4 2010-03-13 19 def
5 2010-03-17 15 abc
6 2010-03-29 15 abc
7 2010-04-01 22 xyz
8 2010-04-13 5 abc
9 2010-04-15 6 def
如果我的管理员想了解 2010 年 4 月(即 2010 年 4 月 1 日 - 2010 年 4 月 30 日)的库存详细信息,请从上表中查看
我需要如下所示的输出。
截至2010 年 4 月 1 日的库存
ItemName Datecreated qty ---------------------------- abc 2010-03-29 15 xyz 2010-04-01 22 def 2010-03-13 19
截至2010 年 4 月 30 日的库存
ItemName Datecreated qty --------------------------- abc 2010-04-13 5 xyz 2010-04-01 22 def 2010-04-15 6
最佳答案
对于您的第一个结果集,请使用 @YourDataParam = '2010-04-01' 运行。对于第二组,请使用“2010-04-30”。
;with cteMaxDate as (
select it.ItemName, max(it.DateCreated) as MaxDate
from InventoryTable it
where it.DateCreated <= @YourDataParam
group by it.ItemName
)
select it.ItemName, it.DateCreated, it.qty
from cteMaxDate c
inner join InventoryTable it
on c.ItemName = it.ItemName
and c.MaxDate = it.DateCreated
关于sql - 我需要显示每月库存数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4044595/