Skip to content

NW6 | Rabia Avci | Databases Module | [TECH ED] E-Commerce | Week 3 #174

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
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
63 changes: 62 additions & 1 deletion E-Commerce/readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,14 +45,75 @@ erDiagram

Write SQL queries to complete the following tasks:

- [ ] List all the products whose name contains the word "socks"
- [x] List all the products whose name contains the word "socks"

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

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

SELECT p.product_name, pa.unit_price
FROM products p
JOIN product_availability pa ON p.id = pa.prod_id
ORDER BY pa.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

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

SELECT o.id,
o.order_date,
o.order_reference,
p.product_name,
oi.quantity
FROM orders o
JOIN order_items oi ON o.id = oi.order_id
JOIN products p ON oi.product_id = p.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

SELECT p.product_name, pa.unit_price, oi.quantity
FROM orders o
JOIN order_items oi ON o.id = oi.order_id
JOIN products p ON oi.product_id = p.id
JOIN product_availability pa ON oi.product_id = pa.prod_id AND oi.supplier_id = pa.supp_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

SELECT
c.name AS customer_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;

## Acceptance Criteria

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