【发布时间】:2011-11-21 19:59:14
【问题描述】:
我有一个包含库存的表
ID | Product ID | In_Transit | Quantity | Cumulative Quantity
=====+================+==============+==============+====================
1 | 1 | 0 | 1000 | 1000
2 | 1 | 0 | 1 | 1001
3 | 1 | 1 | 54 | 1055
4 | 1 | 1 | 1 | 1056
所以产品 id 1 的总库存是“1056”,我使用 SELECT MAX(ID) 子查询与表连接得到它的累积数量,即 1056。
我想获取库存总额(减去所有在途数量)
所以 1056 - 54 - 1 = 1001
我如何在一个查询中得到这个,所以我得到
Product ID | Total Inventory | Inventory on Hand (Excluding in Transit |
===========+=================+=========================================
1 | 1056 | 1001
我还需要使用累积库存来获得总数,而不是“SUM”,除了对那些在途的求和,因为(那些不在途中的)有大量的记录,而且它们需要很长时间才能求和。我可以用它来汇总那些在途的,因为记录要少得多
【问题讨论】:
-
您的数据库中是否确实存在累积数量列?这似乎是一种非常糟糕的形式。
-
确实如此,它就像一个“缓存”,因为如果我要在最后一分钟对它们求和,那需要的时间太长了。记录太多了