1

我正在尝试做最畅销的系统,但我在 SQL 语句上遇到了一些问题。这是我的 SQL:

select sp.name, pr.productName, op.productID, SUM(op.orderQuantity) AS totalQty from sm_orderedproduct op
INNER JOIN sm_payment p ON op.orderID = p.orderID 
INNER JOIN sm_product pr ON op.productID = pr.productID
INNER JOIN sm_sellerproduct sp ON sp.productID = pr.productID
WHERE MONTH(str_to_date( dateOfPurchase, '%d/%m/%Y' )) = 7
GROUP BY sp.name, pr.productName, op.productID
ORDER BY SUM(op.orderQuantity) DESC LIMIT 4;

使用此 SQL 语句,我得到重复的卖家名称。例如

卖家 Dean 卖出 97 电视

卖家 Rk 售出 20 台式机

卖家 Dean 再次卖出 15 块硬盘

卖家 Gab 售出 2 张木桌

如您所见,卖家 Dean 因销售的产品不同而重复了两次。我想做这样的事情:

卖家 Dean 售出 112 件商品

卖家 Rk 售出 20 件产品

卖家 Gab 售出 2 件产品

什么卖家卖的?产品

我相信我的 group by 子句出了点问题。提前致谢。

4

1 回答 1

3

您需要通过以下方式从查询/组中删除产品相关信息:

select sp.name, sum(op.orderQuantity) AS totalQty 
from sm_orderedproduct op
    inner join sm_payment p ON op.orderID = p.orderID 
    inner join sm_product pr ON op.productID = pr.productID
    inner join sm_sellerproduct sp ON sp.productID = pr.productID
where MONTH(str_to_date( dateOfPurchase, '%d/%m/%Y' )) = 7
group by sp.name
order by sum(op.orderQuantity) desc 
limit 4;
于 2013-07-21T02:46:47.800 回答