Sql 查询至 Return 来自商店的通知 table
Sql Query To Return Notification from store table
我有一个 store
table,其中有 productName
、productNumber
、storedInBranch
、blockNumber
、quantity
、 notifyIn
.
如果 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
并冒着在不同行中存储不同值的风险。
我有一个 store
table,其中有 productName
、productNumber
、storedInBranch
、blockNumber
、quantity
、 notifyIn
.
如果 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
并冒着在不同行中存储不同值的风险。