I’m pretty new to SQL and I want to find the top selling product from each supplier, I tried it with a Max and SUM functions as you can see below but it doesn't quite work like I imagined. Can someone help me solve this?
I got 4 tables which I need to join:
- Supplier with ID, SName
- Order with ID, Supplier_ID
- Order_Position with ID, Order_ID, Product_ID, quantity
- Products with ID, PName
SELECT X.ID, X.SNAME
FROM (SELECT S.ID, P.PNAME, SUM(OP.QUANTITY) AS SUM
FROM ORDER_POSITION AS OP
INNER JOIN ORDER AS O ON O.ID = OP.ORDER_ID
INNER JOIN SUPPLIER AS S ON S.ID = O.SUPPLIER_ID
INNER JOIN PRODUCT AS P ON P.ID = OP.PRODUCT_ID
GROUP BY S.ID, P.PNAME) AS X
WHERE X.SUM = (SELECT (MAX(OP.QUANTITY) AS MAXSUM
FROM ORDER_POSITION AS OP)