产品库存在时间期间

时间:2017-07-05 20:18:32

标签: sql

我们需要创建一个查询,我们将在接下来的几周内获得我们产品的可用库存。

我们有4种订单发票。

a)具有预计交货日期的供应商的订单

b)供应商的发票,这些发票正在从他们的订单转换而且还有一个日期

c)具有估计执行日期的客户的订单

d)具有日期

的客户的发票

a,b将向我们的表格添加数量

c,d将从我们的表中删除数量

例如:

我们目前在第27周,我们知道在7月12日(第28周),我们将收到100件产品A.

然后客户已经预订了50个,执行日期为7月25日(第30周),所以我们有一个订单,应该会在第30周减少产品A的数量。

如果我们将在8月2日收到100多个,那么在第31周,该表应通过计算显示估计数量:

 Week27 - 0   pcs
 Week28 - 100 pcs (we will receive 100 pcs)
 Week29 - 100 pcs (nothing was sold)
 Week30 - 50  pcs (we will sell 50 pcs so the remaining quantity is 50)
 Week31 - 150 pcs (we will receive 100 pcs so the remaining quantity will be 150)

2 个答案:

答案 0 :(得分:0)

在任何仓库管理或ERP系统中,这是一个非常常见的要求,它们大多以类似的方式执行此操作:将每笔交易存储为正数或负数。然后对于每个日期,在该日期之前对每笔交易求和。

伪代码如下,显然适用于您的数据库模式:

Select 
    Week, 
   (Select 
           Sum(Quantity) from 
           Transactions 
            where date < Weeks.EndDate) as ClosingBalance

from Weeks

答案 1 :(得分:-1)

找到一个我认为可行的解决方案:

首先,我在名为z_531的数据库中创建了一个视图,其中我们收集了包含产品信息的所有nessecare行以及日期等。

然后我尝试在查询中进行累积求和:

`选择日期,产品,[数量A],[进口日期],[进口周导出],[进口年份],客户,                           (SELECT SUM([数量A])AS Expr1                             来自dbo.z_531 AS b                             WHERE([Wekk of Import Export]&lt; = dbo.z_531。[导入导出周])和([Product] = dbo.z_531。[Product]))AS [库存量]

FROM dbo.z_531

ORDER BY [产品],[导入导出日期]`

添加我的总和Product = dbo.z_531。[产品]我每个产品和每周都有单独的总和。

尽管我认为这不是最快捷的方式!