我正在使用作为报告/视图存储在我们数据库中的库存分类帐。导出时,它看起来像这样:
Tran Type Txn Date Item Quantity
Opening Balance 6/30/12 Item1 4
Opening Balance 6/30/12 Item2 7
Shipping 7/14/12 Item2 -1
Opening Balance 6/30/12 Item3 3
Shipping 7/2/12 Item3 -1
Opening Balance 6/30/12 Item4 5
Shipping 7/3/12 Item4 -1
Shipping 7/3/12 Item4 -1
Shipping 7/3/12 Item4 -1
Shipping 7/5/12 Item4 -1
Shipping 7/5/12 Item4 -1
Receiving 7/9/12 Item4 10
在导出之前,它不包含那些基于导出期间生成的“期初余额”条目。
我们正在尝试跟踪在给定期间内每件商品缺货的天数。第一步是按项目创建运行总计,这是我之前通过 Excel 中的数据透视表所做的。从那里开始,我需要灵活、动态地计算每个项目的库存天数为 0 数量(基于月、季度或年)。最初,我也希望通过数据透视表来考虑这个计数,为此我求助于超级用户。 不幸的是,通过 excel 完成这类工作似乎违反直觉,所以我将我的问题带到这里。
我在 Access 和 SQL Server 方面只有新手经验。我在 Oracle 和 PL/SQL 方面接受过一些简单的正式培训,但那是几年前的事了。可能会为此添加另一个复杂性,我无法将任何内容写入或永久保存到我们的系统后端(即使我有权限)。
到目前为止,我只想出了一个 T-SQL 语句来按项目创建运行总计:
Select
TxnDate,
Quantity,
Item,
(SELECT Sum(Quantity)
FROM DATABASE.dbo.InventoryLedger as D1
WHERE D1.TxnDate <= D0.TxnDate AND D1.Item = D0.Item) as balance
FROM DATABASE.dbo.InventoryLedger as D0
where Item = 'Item4' and TxnDate >= 2012-07-01
在这之后我迷路了。我不知道我是否应该进行某种计数,或者找到一种方法来减去数量达到 0 的项目之间的日期,然后稍后再收到。我不确定如何根据已计算的余额列添加另一个聚合或计算列,我什至不确定如何翻译此查询,以便它将与我的相同数据的 Access 文件一起使用。我会接受 Access 或 T-SQL 格式的解决方案;我渴望真正学习 T-SQL,同时能够在 Access 中执行计数可以让我链接数据库并让我更容易生成直接报告。
我也很好奇是否有一种简单的方法可以查询每天每件商品的库存水平?我想这只是使用相同的确切数据来计算,所以这可能只是浪费时间和空间,对吧?
我很感激任何帮助,伙计们。几个月来,我一直在尝试提出一种解决方案来衡量缺货情况,这是我最接近的一次。谢谢。