diff --git a/2-exercises/task.md b/2-exercises/task.md index c48d2286..70e172d9 100644 --- a/2-exercises/task.md +++ b/2-exercises/task.md @@ -35,16 +35,67 @@ Open the file `cyf_ecommerce.sql` in VSCode and examine the SQL code. Take a pie Once you understand the database that you are going to work with, solve the following challenge by writing SQL queries using everything you learned about SQL: 1. Retrieve all the customers' names and addresses who live in the United States +sql- SELECT name, address FROM customers where country ='United States'; 2. Retrieve all the customers in ascending name sequence +sql- select name from customers order by name; 3. Retrieve all the products whose name contains the word `socks` +sql- select product_name from products where product_name like '%socks%'; 4. Retrieve all the products which cost more than 100 showing product id, name, unit price and supplier id. +sql- select * from products inner join product_availability on products.id = product_availability.prod_id where unit_price > 100; 5. Retrieve the 5 most expensive products +sql-select * from products inner join product_availability on products.id = product_availability.prod_id order by unit_price desc limit 5; 6. Retrieve all the products with their corresponding suppliers. The result should only contain the columns `product_name`, `unit_price` and `supplier_name` +sql= select product_name, unit_price, supplier_name from products inner join product_availability on products.id = product_availability.prod_id inner join suppliers on products.id = suppliers.id; 7. Retrieve 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 product_name, supplier_name from products inner join suppliers on products.id = suppliers.id where country = 'United Kingdom'; + + + 8. Retrieve all orders, including order items, from customer ID `1`. Include order id, reference, date and total cost (calculated as quantity * unit price). +sql- + + +select orders.id as orders_id, orders.order_reference as ref, orders.order_date as date, product_availability.unit_price * order_items.quantity as total_cost from orders inner join order_items on orders.id = order_items.order_id inner join product_availability on order_items.product_id = product_availability.prod_id where orders.customer_id = 1; + + + 9. Retrieve all orders, including order items, from customer named `Hope Crosby` +sql = +select orders.id as orders_id, orders.order_reference as ref, orders.order_date as date, product_availability.unit_price * order_items.quantity as total_cost, products.product_name from customers inner join orders on customers.id = orders.customer_id inner join order_items on orders.id = order_items.order_id inner join product_availability on order_items.product_id = product_availability.prod_id inner join products on products.id = product_availability.prod_id where customers.name = 'Hope Crosby'; + + + + + 10. Retrieve all the products in the order `ORD006`. The result should only contain the columns `product_name`, `unit_price` and `quantity`. + +sql- + +select products.product_name, product_availability.unit_price, order_items.quantity from products inner join product_availability on products.id = product_availability.prod_id inner join order_items on order_items.product_id = product_availability.prod_id inner join orders on orders.id = order_items.order_id where orders.order_reference = 'ORD006'; + product_name | unit_price | quantity + + 11. Retrieve 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 customers.name, orders.order_reference, orders.order_date, products.product_name, suppliers.supplier_name, order_items.quantity from customers inner join orders on customers.id = orders.customer_id inner join order_items on orders.id = order_items.order_id inner join products on products.id = order_items.product_id inner join suppliers on suppliers.id = order_items.supplier_id; + + + + + 12. Retrieve the names of all customers who bought a product from a supplier based in China. +sql - +select distinct customers.name from customers inner join orders on orders.customer_id = customers.id inner join order_items on order_items.order_id = orders.id inner join suppliers on suppliers.id = order_items.supplier_id and suppliers.country = 'China'; + + + + + 13. List all orders giving customer name, order reference, order date and order total amount (quantity * unit price) in descending order of total. +sql - +select customers.name, orders.order_date, orders.order_reference, order_items.quantity * product_availability.unit_price as total_amount from customers inner join orders on orders.customer_id = customers.id inner join order_items on order_items.order_id = orders.id inner join product_availability on product_availability.prod_id = order_items.product_id order by total_amount desc; +