所以我有一个产品,例如蛋糕(它是一种柔软的cofeteria)。我知道我的蛋糕会在48小时后过期。 今天,例如我的库存中有10个蛋糕,我想知道我的一些蛋糕是否过期,将其送回存款,并将其从我的库存中消除。
我的产品表包含产品和有效期(以小时为单位)(例如:48小时)
我有另一张桌子,我现在计算我的股票。 (以及这样做的程序)。
答案 0 :(得分:0)
您可能需要在Production
跟踪表和Sale
表中添加新列,可能是BatchNumber
或ProductionDate
,然后获取生成的蛋糕列表及其列表批号减去每个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
对于上面的查询,我假设您在Product
和Production
中有三个表Sale
,BatchNumber
和Production
列Sale
列table ProductionTime
表中的Production
列。