You are on page 1of 13

Lab Chapter # 12

Total Marks: 10

Student Name : ____________________________________________________

Student Id #: ______________________________________________________

Lab exercises You need to be present in the class for your lab to be graded and are to be
submitted within 3 Hours after the class, failing to do the will result in ZERO grade.

Hands-On Assignments
To perform these assignments, refer to the tables in the JustLee Books database. Use a subquery
to accomplish each task. Make sure you execute the query you plan to use as the subquery to
verify the results before writing the entire query.

1. List the book title and retail price for all books with a retail price lower than the average
retail price of all books sold by JustLee Books.
SELECT title, retail
FROM books
WHERE retail >
(SELECT AVG(retail)
FROM books);
2. Determine which books cost less than the average cost of other books in the same
category.
SELECT a.title, b.category, a.cost
FROM books a, (SELECT category, AVG(cost) averagecost
FROM books
GROUP BY category) b
WHERE a.category = b.category
AND a.cost < b.averagecost;

3. Determine which orders were shipped to the same state as order 1014.
SELECT order#
FROM orders
WHERE shipstate = (SELECT shipstate
FROM orders
WHERE order# = 1014);
4. Determine which orders had a higher total amount due than order 1008.
SELECT order#, SUM(quantity * paideach)
FROM orderitems
GROUP BY order#
HAVING SUM(quantity * paideach) >
(SELECT SUM(quantity * paideach)
FROM orderitems
WHERE order# = 1008);
5. Determine which author or authors wrote the books most frequently purchased by
customers of JustLee Books.
SELECT lname, fname
FROM bookauthor JOIN author USING(authorid)
WHERE isbn IN
(SELECT isbn
FROM orderitems
GROUP BY isbn
HAVING SUM(quantity) =
(SELECT MAX(COUNT(*))
FROM orderitems
GROUP BY isbn));
6. List the title of all books in the same category as books previously purchased by customer
1007. Don’t include books this customer has already purchased.

SELECT title
FROM books
WHERE category IN
(SELECT DISTINCT category
FROM books JOIN orderitems USING(isbn)
JOIN orders USING(order#)
WHERE customer# = 1007)
AND isbn NOT IN
(SELECT isbn
FROM orders JOIN orderitems USING(order#)
WHERE customer# = 1007);
7. List the shipping city and state for the order that had the longest shipping delay.
SELECT shipcity, shipstate
FROM orders
WHERE shipdate-orderdate =
(SELECT MAX(shipdate-orderdate)
FROM orders);
8. Determine which customers placed orders for the least expensive book (in terms of
regular retail price) carried by JustLee Books.

SELECT customer#
FROM customers JOIN orders USING(customer#) JOIN orderitems USING(order#)
JOIN books USING(isbn)
WHERE retail =
(SELECT MIN(retail)
FROM books);
9. Determine the number of different customers who have placed an order for books written
or cowritten by James Austin.
SELECT COUNT(DISTINCT customer#)
FROM orders JOIN orderitems USING(order#)
WHERE isbn IN
(SELECT isbn
FROM orderitems JOIN bookauthor USING(isbn)
JOIN author USING(authorid)
WHERE lname= 'AUSTIN'
AND fname = 'JAMES');
10. Determine which books were published by the publisher of The Wok Way to Cook.
SELECT title
FROM books
WHERE pubid =
(SELECT pubid
FROM books
WHERE title = 'THE WOK WAY TO COOK');
Advanced Challenge
To perform this activity, refer to the tables in the JustLee Books database.

Currently, JustLee Books bills customers for orders by enclosing an invoice with each order
when it’s shipped. A customer then has 10 days to send in the payment. Of course, this practice
has resulted in the company having to list some debts as “uncollectible.” By contrast, most other
online booksellers receive payment through a customer’s credit card at the time of purchase.
With this method, although payment would be deposited within 24 hours into JustLee’s bank
account, there’s a downside. When a merchant accepts credit cards for payment, the company
processing the credit card sales (usually called a “credit card clearinghouse”) deducts a 1.5%
processing fee from the total amount of the credit card sale.

The management of JustLee Books is trying to determine whether the surcharge for credit card
processing is more than the amount usually deemed uncollectible when customers are sent an
invoice. Historically, the average amount that JustLee Books has lost is about 4% of the total
amount due from orders with a higher-than-average amount due. In other words, usually
customers who have an order with a larger-than-average invoice total default on payments. To
determine how much money would be lost or gained by accepting credit card payments,
management has requested that you do the following:

1. Determine how much the surcharge would be for all recently placed orders if payment
had been made by a credit card.
2. Determine the total amount that can be expected to be written off as uncollectible based
on recently placed orders with an invoice total more than the average of all recently
placed orders.

Based on the results of these two calculations, you should determine whether the company will
lose money by accepting payments via credit card. State your findings in a memo to
management. Include the SQL statements for calculating the expected surcharge and the
expected amount of uncollectible payments.

SELECT Customers.*
FROM Customers INNER JOIN Orders ON Customers.Customer# = Orders.Customer#
INNER JOIN OrderItems ON Orders.Order# = OrderItems.Order#
WHERE ISBN = ( SELECT MIN(Retail) FROM Books);

SELECT Books.*
FROM Books
WHERE PubID = ( SELECT Publisher.PubID
FROM Publisher INNER JOIN Books
ON Publisher.PubID = Books.PubID
WHERE Title = 'BODYBUILD IN 10 MINUTES A DAY')
MINUS
SELECT * FROM Books WHERE Title = 'BODYBUILD IN 10 MINUTES A DAY' ;
SELECT b.Title, c.Firstname, c.Lastname
FROM BOOKS b
LEFT JOIN ORDERITEMS oi
ON b.ISBN = oi.ISBN
INNER JOIN ORDERS o
ON oi.Order# = o.Order#
LEFT JOIN CUSTOMERS c
ON o.Customer# = c.Customer#;

You might also like