【问题标题】:Hard to explain, new at mysql很难解释,mysql的新手
【发布时间】:2017-10-03 09:24:47
【问题描述】:

如果销售人员供应的零件总数超过 1000 件,则计算每个供应商的总销售数量并得到销售人​​员的姓名。

表信息:

供应商 {s_num, s_name, status, city}

Spj {s_num, p_num, j_num, 数量}

这就是我所拥有的:

SELECT s_name, SUM(qty) AS sum
FROM Supplier, Spj
WHERE Supplier.s_num = Spj.s_num
AND qty > 1000
GROUP BY s_name;

我认为我的错误在这一行:

AND qty > 1000

也许我错误地使用了“GROUP BY”...

没有供应商数量超过 800 个,所以我得到一个空白结果。

我想测试一下:

"sum of quantity for each supplier" > 1000

【问题讨论】:

  • AND qty > 1000 GROUP BY s_name 替换为GROUP BY s_name HAVING(qty > 1000)
  • WHERE vs HAVING的可能重复
  • SQL 中列名不明确的查询错误

标签: mysql


【解决方案1】:

在 group by 子句之后使用 HAVING 访问聚合结果:

SELECT s_name, SUM(qty) AS sum
FROM Supplier, Spj
WHERE Supplier.s_num = Spj.s_num
GROUP BY s_name
HAVING qty > 1000;

请参阅this post 了解有关拥有与位置的更多信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-03-06
    • 1970-01-01
    • 2022-01-23
    • 2021-04-03
    • 2021-11-06
    • 1970-01-01
    • 2021-11-19
    • 2010-11-07
    相关资源
    最近更新 更多