我已经工作了大约两周来为我工作的公司构建一些详细的报告选项。上周某个时候或前一周我在这里问了一个问题,这让我开始了一个查询,我最终大大加强了这个查询。
我从一个只跟踪单个交易的库存分类帐开始。目标是建立一个更全面的分类账,以保持库存总量、销售总量,如果某件商品缺货,它将跟踪补货前的天数。
初始查询使用 With ... as 语句来定义表及其聚合,然后对聚合列进行自连接。不幸的是,我不能做同样的事情来创建一个视图,所以我需要找到一种方法来不同地创建这些聚合,这仍然允许我自行加入它们以保持我的总数井井有条。
到目前为止,这是我重新整理我的陈述的方式:
Create View 'QLedger' as
Select tcum.txnid,
tcum.Item,
tcum.TxnDate,
tcum.[Tran Type],
tcum.Quantity,
tcum.cumq
from (select *, SUM( Quantity )
OVER (PARTITION BY InventoryLedger.Item
ORDER BY InventoryLedger.TxnID
ROWS UNBOUNDED PRECEDING ) cumq,
abs(
sum(
case when [Tran Type] = 'Shipping'
or [Tran Type] = 'Customer Return'
then Quantity end)
over (partition by qryrptInventoryLedger.item
order by InventoryLedger.txnid
rows unbounded preceding)) LifeSales
from InventoryLedger) tcum
left outer join InventoryLedger tcumnext
on tcum.Item = tcumnext.Item
and tcum.TxnID < tcumnext.TxnID
and
tcum.cumq = 0 and tcumnext.cumq >0
where tcum.Item = '103-02'
and tcum.cumq = 0
group by tcum.TxnID, tcum.TxnDate, tcum.Item, tcum.[tran type], tcum.Quantity
这几乎是正确的,除了我自己加入的表 (tcumnext) 没有运行/累积数量列来与 tcum 进行比较。我根本不知道如何制作一个与之比较。谁能帮我吗?我真的很感激。经过这么长时间的努力,如此接近,令人兴奋和沮丧。