销量超过1种产品的SQL语句失败

时间:2019-03-02 23:27:35

标签: tsql

我有3个不同的表,分别是SALESMAN,SALES和PRODUCT。这就是我要做的事情,我必须为每个销售人员在1种以上产品上列出每种产品的总销售额

这些是我的桌子及其列

Product table --> product_id,product_name, price 
Salesman table --> Salesman_id, Salesman_name
Sales table --> Sales_id, Salesman_id,Product_id, quantity


SELECT a.Slaesman_name, p.Product_name, t.quantity FROM SALES t
inner join SALESMAN a on t.Salesman_id =a.Salesman_id 
inner join PRODUCT p on t.Product_id = p.Product_id

到目前为止,这是我的SQL,但是我需要显示仅在一种以上产品上有销售的记录,我应该如何继续?

2 个答案:

答案 0 :(得分:0)

要查找哪些销售员销售了一种以上的产品,请使用

SELECT Salesman_id 
FROM SALES t
Group By Salesman_id
Where COUNT(Product_id) > 1

答案 1 :(得分:0)

因为您想要总销售额,所以我们应该使用SUM语法,并且每当有sum时,对于其他未求和的列,应该使用GROUP BY语法。由于以下条件,最后会有HAVING

SELECT a.Slaesman_name, p.Product_name, Sum(t.quantity) FROM SALES t
inner join SALESMAN a on t.Salesman_id =a.Salesman_id 
inner join PRODUCT p on t.Product_id = p.Product_id
GROUP BY (a.Slaesman_name, p.Product_name)
HAVING Sum(t.quantity) > 1