sql - 我需要显示每月库存数据

标签 sql sql-server sql-server-2005 t-sql sql-server-2008

我有一个类似如下的表格,用于显示库存详细信息。

库存表。

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 日)的库存详细信息,请从上表中查看

我需要如下所示的输出。

  1. 截至2010 年 4 月 1 日的库存

    ItemName  Datecreated   qty
    ----------------------------
    abc       2010-03-29    15
    xyz       2010-04-01    22
    def       2010-03-13    19
    
  2. 截至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/

相关文章:

php - 仅更新 1 行 While 循环错误

mysql - sql - 有没有办法使用另一个 SELECT 查询来过滤 SELECT 查询的结果?

c# - 创建更快的正则表达式 clr 函数

sql-server-2005 - SQL Server 2005表变量更新问题

sql-server - 更新二进制字段从文件系统获取文件而不使用动态 SQL

sql - Postgres\d+ (show relation information) 相当于通过 sql

mysql - 在子查询中,我尝试从外部查询中定义的表中进行选择

python - 如何使用 Python 3 访问 MS SQL Server?

sql-server - 如何组合表并从上一个表创建新记录(如果丢失)?

php - 在 php 表中显示 MSSQL 选择数据