Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
58 changes: 51 additions & 7 deletions E-Commerce/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,14 +45,58 @@ erDiagram

Write SQL queries to complete the following tasks:

- [ ] List all the products whose name contains the word "socks"
- [ ] List all the products which cost more than 100 showing product id, name, unit price, and supplier id
- [ ] List the 5 most expensive products
- [ ] List all the products sold by suppliers based in the United Kingdom. The result should only contain the columns product_name and supplier_name
- [ ] List all orders, including order items, from customer named Hope Crosby
- [ ] List all the products in the order ORD006. The result should only contain the columns product_name, unit_price, and quantity
- [ ] List all the products whose name contains the word "socks".
``` sql
SELECT * FROM products
WHERE product_name ILIKE '%socks%';
```
- [ ] List all the products which cost more than 100 showing product id, name, unit price, and supplier id.
``` sql
SELECT p.id AS product_id, p.product_name, pa.unit_price, pa.supp_id AS supplier_id
FROM products p
JOIN product_availability pa ON p.id = pa.prod_id
WHERE pa.unit_price > 100;
```
- [ ] List the 5 most expensive products.
```sql
SELECT * FROM product_availability
Order BY unit_price desc
LIMIT 5;
```
- [ ] List all the products sold by suppliers based in the United Kingdom. The result should only contain the columns product_name and supplier_name.
```sql
SELECT p.product_name, s.supplier_name
FROM products p
JOIN product_availability pa ON p.id = pa.prod_id
JOIN suppliers s ON pa.supp_id = s.id
WHERE s.country = 'United Kingdom';
```
- [ ] List all orders, including order items, from customer named Hope Crosby.
``` sql
SELECT * FROM order_items oi
JOIN orders o ON oi.id = o.customer_id
JOIN customers c ON o.customer_id = c.id
WHERE c.name = 'Hope Crosby';
```
- [ ] List all the products in the order ORD006. The result should only contain the columns product_name, unit_price, and quantity.
```sql
SELECT p.product_name, pa.unit_price, oi.quantity
FROM product_availability pa
JOIN products p ON pa.prod_id = p.id
JOIN order_items oi ON p.id = oi.product_id
JOIN orders o ON oi.order_id = o.id
WHERE o.order_reference = 'ORD006';
```
- [ ] List all the products with their supplier for all orders of all customers. The result should only contain the columns name (from customer), order_reference, order_date, product_name, supplier_name, and quantity

```sql
SELECT c.name, o.order_reference, o.order_date, p.product_name, s.supplier_name, oi.quantity
FROM customers c
JOIN orders o ON c.id = o.customer_id
JOIN order_items oi ON o.id = oi.order_id
JOIN products p ON oi.product_id = p.id
JOIN suppliers s ON oi.supplier_id = s.id
ORDER BY order_date, c.name;
```
## Acceptance Criteria

- [ ] The `cyf_ecommerce` database is imported and set up correctly
Expand Down