计算我的产品库存。 (SQL)

时间:2018-03-13 10:35:30

标签: sql

所以我有一个产品,例如蛋糕(它是一种柔软的cofeteria)。我知道我的蛋糕会在48小时后过期。 今天,例如我的库存中有10个蛋糕,我想知道我的一些蛋糕是否过期,将其送回存款,并将其从我的库存中消除。

我的产品表包含产品和有效期(以小时为单位)(例如:48小时)

我有另一张桌子,我现在计算我的股票。 (以及这样做的程序)。

1 个答案:

答案 0 :(得分:0)

您可能需要在Production跟踪表和Sale表中添加新列,可能是BatchNumberProductionDate,然后获取生成的蛋糕列表及其列表批号减去每个BatchNumber销售的蛋糕列表,根据生产时间显示为过期或美味。

SELECT
    Product.ProductName,
    Production.BatchNumber,
    SUM(Production.Qty) - SUM(Sale.Qty) AS Stock
    CASE WHEN DATEADD(hh, Product.ExpireInHrs, Production.ProductionTime) >= CURRENT_TIMESTAMP THEN 'Expired' ELSE 'Tasty' END
FROM Product
    INNER JOIN Production ON Production.ProductId = Product.ProductId
    INNER JOIN Sale ON Sale.ProductId = Product.ProductId AND Production.BatchNumber = Sale.BatchNumber
GROUP BY
    Product.ProductName,
    Production.BatchNumber

对于上面的查询,我假设您在ProductProduction中有三个表SaleBatchNumberProductionSale列table ProductionTime表中的Production列。