所以我有一个产品,例如蛋糕(对于咖啡馆来说是软的)。我知道我的蛋糕会在 48 小时后过期。例如,今天我的库存中有 10 个蛋糕,我想知道我的一些蛋糕是否已过期,将其送回存款,并将其从我的库存中删除。
我有我的产品表,其中包含产品和以小时为单位的到期日期(例如:48 小时)
我有另一个表格,我现在可以在其中计算我的库存。(以及执行此操作的程序)。
您可能需要在Production
跟踪表和Sale
表中添加新列,这可能是BatchNumber
或ProductionDate
,然后获取生产的蛋糕列表及其批次编号减去根据生产时间为每个批次编号销售的蛋糕列表,将其显示为过期或美味。
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
对于上面的查询,我假设您有三个表Product
,Production
并且Sale
有BatchNumber
列在Production
和Sale
表中,ProductionTime
列在Production
表中。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句