1 마당서점의 고객이 요구하는 다음 질문에 대해 SQL 문을 작성하시오.
(5) 박지성이 구매한 도서의 출판사 수
SELECT COUNT(DISTINCT BOOK.PUBLISHER)
FROM BOOK, ORDERS, CUSTOMER
WHERE ORDERS.CUSTID =1 AND CUSTOMER.CUSTID =1 AND ORDERS.BOOKID = BOOK.BOOKID
(6) 박지성이 구매한 도서의 이름, 가격, 정가와 판매가격의 차이
SELECT BOOKNAME, PRICE, BOOK.PRICE-ORDERS.SALEPRICE
FROM BOOK, ORDERS, CUSTOMER
WHERE ORDERS.CUSTID =1 AND CUSTOMER.CUSTID =1 AND ORDERS.BOOKID = BOOK.BOOKID
(7) 박지성이 구매하지 않은 도서의 이름
SELECT BOOKNAME
FROM BOOK
MINUS
SELECT BOOKNAME
FROM BOOK, ORDERS, CUSTOMER
WHERE BOOK.BOOKID = ORDERS.BOOKID AND ORDERS.CUSTID =1 AND CUSTOMER.CUSTID =1
2 마당서점의 운영자와 경영자가 요구하는 다음 질문에 대해 SQL 문을 작성하시오.
(8) 주문하지 않은 고객의 이름(부속질의 사용)
SELECT NAME
FROM CUSTOMER
WHERE CUSTID NOT IN(SELECT CUSTID FROM ORDERS)
(9) 주문 금액의 총액과 주문의 평균 금액
SELECT SUM(SALEPRICE) AS 총액, AVG(SALEPRICE) AS 평균금액
FROM ORDERS
(10) 고객의 이름과 고객별 구매액
SELECT NAME, SUM(SALEPRICE)
FROM CUSTOMER, ORDERS
WHERE CUSTOMER.CUSTID = ORDERS.CUSTID
GROUP BY CUSTOMER.NAME
(11) 고객의 이름과 고객이 구매한 도서 목록
SELECT NAME, BOOKNAME
FROM CUSTOMER, ORDERS, BOOK
WHERE CUSTOMER.CUSTID = ORDERS.CUSTID AND ORDERS.BOOKID = BOOK.BOOKID
(12) 도서의 가격(Book 테이블)과 판매가격(Orders 테이블)의 차이가 가장 많은 주문
SELECT BOOKNAME, ORDERID
FROM ORDERS, BOOK
WHERE BOOK.BOOKID = ORDERS.BOOKID AND
BOOK.PRICE-ORDERS.SALEPRICE =
(SELECT MAX(BOOK.PRICE-ORDERS.SALEPRICE) FROM ORDERS, BOOK WHERE BOOK.BOOKID = ORDERS.BOOKID)
(13) 도서의 판매액 평균보다 자신의 구매액 평균이 더 높은 고객의 이름
SELECT NAME
FROM CUSTOMER JOIN ORDERS ON CUSTOMER.CUSTID = ORDERS.CUSTID GROUP BY CUSTOMER.NAME
HAVING AVG(SALEPRICE) > (SELECT AVG(SALEPRICE) FROM ORDERS)