I have 3 tables:
Categories table
| category_id | category_name |
|---|---|
| 1 | kitchen |
| 2 | bedroom |
Suppliers table
| supplier_id | supplier_name |
|---|---|
| 1 | amazon |
| 2 | wallmart |
| 2 | ebay |
Product table
| product_id | product_name | category_id | supplier_id | stock |
|---|---|---|---|---|
| 1 | bed | 2 | 1 | 2 |
| 2 | table | 2 | 2 | 10 |
| 3 | glass | 1 | 1 | 4 |
| 4 | plate | 1 | 3 | 10 |
| 5 | spoon | 1 | 3 | 20 |
I want current state of suppliers stocks for each category of product.
Expected result:
| CATEGORY | suppliers | stock |
|---|---|---|
| bedroom | amazon | 2 |
| kitchen | amazon | 4 |
| bedroom | wallmart | 10 |
| kitchen | ebay | 30 |
CodePudding user response:
SELECT C.category_name,S.supplier_name,SUM(P.stock)TOTAL_STOCK
FROM PRODUCT P
JOIN Categories C ON P.category_id=C.category_id
JOIN Suppliers S ON P.supplier_id=S.supplier_id
GROUP BY C.category_name,S.supplier_name
You can try something like this
CodePudding user response:
select category_name as category
,supplier_name as suppliers
,sum(stock) as stock
from product p join suppliers s using(supplier_id) join categories using(category_id)
group by category_name, supplier_name
| category | suppliers | stock |
|---|---|---|
| bedroom | amazon | 2 |
| bedroom | ebay | 10 |
| bedroom | wallmart | 10 |
| kitchen | amazon | 4 |
