2017-05-05 49 views
0

计算每个供应商的总销售数量,并获得销售人员的姓名,如果销售人员提供总计超过1000个单位的零件。很难解释,新的在mysql

表信息:

供应商{s_num,S_NAME,状态,城市}

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 
+0

用GROUP BY s_name HAVING(qty> 1000)'替换'AND qty> 1000 GROUP BY s_name'。 – DyZ

+1

[WHERE vs HAVING]的可能重复(http://stackoverflow.com/questions/2905292/where-vs-having) – DyZ

+0

在SQL中使用含糊不清的列名查询错误 – JYoThI

回答

0

使用具有by子句后一组访问汇总结果:

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在具有VS哪里。