2013-07-21 203 views
1

我試圖做最好的賣家系統,但我在SQL語句中遇到了一些問題。這是我的SQL:SQL語句GROUP BY

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語句,我得到重複的賣方名稱。例如

賣家院長售出97電視

賣家RK售出20桌面

賣家院長再次出售15個硬碟

賣家加布售出2個木桌

正如你可以看到,賣家迪恩因爲銷售不同的產品而重複了兩次。我想做的事情,如:

賣家出售院長產品112

賣家售出RK 20個產品

賣家加布售出200個產品

而且不管賣家出售?產品

我相信我的group by子句出了問題。提前致謝。

+0

它是Postgres的? –

+0

對不起?你的意思是postgres –

+1

@Gwen - Postgres是一個數據庫。加斯頓問你在使用哪個分貝。看起來像MySQL ... – sgeddes

回答

4

您需要刪除通過查詢/組相關信息的產品:

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

哇工作謝謝 –

+0

@Gwen - np,很高興我可以幫助! – sgeddes