我正在尝试返回滞销商品清单。每当有销售时,项目就会写入saleItems表。我想从过去N天内未出现在saleItems表中的清单主表中获取那些项目。这是我的结构。
db_inventory - all inventory items are stored here in stockmain table
db_main - all sale transactions recorded here in saleitems table
以下是给我一个错误的查询
SELECT db_inventory.StockMain.ItemCode
FROM
db_inventory.StockMain
JOIN
db_main.SaleItems
ON
db_main.SaleItems.ItemID=db_inventory.StockMain.ItemCode
WHERE NOT IN(
SELECT db_main.SaleItems.ItemID FROM db_main.SaleItems
WHERE db_main.SaleItems.saledate BETWEEN
DATE_SUB(CURDATE(),INTERVAL 90 DAY) AND NOW()
)
最佳答案
将NOT EXISTS
与相关子查询一起使用。
SELECT ItemCode
FROM db_inventory.StockMain i
WHERE NOT EXISTS (
SELECT 1
FROM db_main.SaleItems m
WHERE m.ItemID = i.ItemID AND m.saledate > NOW() - INTERVAL 90 DAY
)
子查询可确保对于库存中给定的项目,过去90天内销售表中没有记录。
关于mysql - 滞销库存项目查询,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58013019/