簡體   English   中英

Mysql查詢select sum where子句

[英]Mysql query select sum where clause

我有一個 MySQL 數據庫,其中有 2 個表,稱為 mutaties 和 products

例如,在突變中,您有一個 product_id(對應於產品數據庫中的產品 ID。

所以我們現在使用突變數據庫中的 SUM(aantal) 獲取當前庫存。

產品表對每個產品都有一個閾值。

我現在想要做的是設置一個 mysql 查詢,該查詢獲取當前庫存低於閾值的每個產品。

現在我有這個:

SELECT * 
  FROM products
     , mutaties 
 WHERE SUM(aantal) < threshold

但我收到錯誤無效使用組功能。

做這個的最好方式是什么?

這是我的產品表:在此處輸入圖片描述

列的翻譯是 id,brand,model,threshold

這是我的突變數據庫:此處輸入圖像描述,這里是列的突變表翻譯:id product_id 數量日期描述

就像 jarlh 在該評論中所寫的那樣,您可能應該使用現代JOIN語法。 因此,這樣的事情應該有效:

select p.id, sum(m.aantal) as aantalsum
from products as p
join mutaties as m on (m.product_id = p.id)
group by p.id, p.threshold
having sum(m.aantal) < p.threshold

注意事項:

  • 如果您的products沒有mutaties ,它們將不會出現在該選擇中。 如果您需要這些,請改用left outer join
  • 你有productsthreshold的0,他們可能也不會出現在所有。
  • 如果您的選擇列表中需要更多列,您還需要將它們添加到group by expression

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM