Sql 查询至 Return 来自商店的通知 table

Sql Query To Return Notification from store table

我有一个 store table,其中有 productNameproductNumberstoredInBranchblockNumberquantitynotifyIn.

如果 quantity 小于 notifyIn 它会通知我,我尝试了下面的查询:

select * from store
where (quantity < notifyIn) AND (notify > 0)

效果很好,但由于一个产品可以存储在多个 blockNumbers 中,即使产品数量不少于 notifyin

,它也会通知我

例如:

productName = monitor, productNumber=123, storedInBranch=kenya, blocknumber=5b, quantity=5, notifyin=4

productName = monitor, productNumber=123, storedInBranch=kenya, blocknumber=<b>1a</b>, quantity=5, notifyin=4

所以上面的查询 returns 两者都很低,我想做的是对 quantity (5+5) 和 notifyIn 4.

求和

您在这里依赖于 notifyin 在多行中是相同的值。你可以做类似

的事情
SELECT productNumber, sum(quantity), min(notifyin)
FROM store
GROUP BY productNumber
HAVING sum(quantity) < min(notifyin)

我鼓励您尽可能更改架构以更好地反映您的领域逻辑。也许有一个单独的 table 与产品编号和价值通知。这样你就不会复制 notifyin 并冒着在不同行中存储不同值的风险。