Database

[오라클DB 숙제] 3월 24일 실습문제1

웨일파도 2023. 3. 24. 18:16
반응형

test_hw_0326.sql
0.00MB


--1. 가장 제고가 많은 남은 제품의 제품명, 제품종류, 남은갯수 출력  (남은갯수 미출력함...)
SELECT P.P_NAME, C.NAME, A.P_LEFT
FROM PRODUCT P
LEFT JOIN T_CODE C ON C.CODE = P.KIND AND C.KIND = 'CLOTH'
INNER JOIN  (
                    SELECT P_ID, P_LEFT
                    FROM (
                            SELECT P_ID, SUM(COUNT) AS P_LEFT
                            FROM P_MANAGE
                            GROUP BY P_ID
                            ORDER BY P_LEFT DESC
                            )
                    WHERE ROWNUM = 1
                    ) A ON A.P_ID = P.P_ID;
                                      
                    
--2. 유재석이 구매한 '모자' 제품의 각 사이즈별 수량 구하기 (해결)

SELECT P_SIZE,SUM(COUNT)
FROM (

        SELECT *
        FROM P_MANAGE
        WHERE P_ID IN (
                        SELECT P.P_ID
                        FROM ORDER_TABLE O
                        INNER JOIN T_USER U ON O.ID = U.ID
                        INNER JOIN PRODUCT P ON P.P_ID = O.P_ID
                        LEFT JOIN T_CODE C ON C.CODE = P.KIND AND C.KIND = 'CLOTH'
                        WHERE U.NAME IN '유재석' AND C.NAME = '모자'
                        )
        )
GROUP BY P_SIZE;


--3. 한번도 주문이 되지 않은 제품의 S 사이즈 제품들 삭제
--(P_ID가 PRODUCT 테이블에는 있지만 ORDER_TABLE에는 없는 데이터)
DELETE FROM P_MANAGE
WHERE P_ID IN (
               SELECT P.P_ID
               FROM PRODUCT P
               LEFT JOIN ORDER_TABLE O ON O.P_ID = P.P_ID
               WHERE O.ORDER_NUM IS NULL
               ) AND P_SIZE = 'S';
                        

SELECT * FROM T_USER;
SELECT * FROM PRODUCT;
SELECT * FROM P_MANAGE;
SELECT * FROM REVIEW;
SELECT * FROM ORDER_TABLE;
SELECT * FROM T_CODE;


--4. 배송상태가 '환불'인 제품들의 재고량 구하기
SELECT DISTINCT M.P_ID, M.P_SIZE, M.COLOR, M.COUNT
FROM P_MANAGE M
INNER JOIN (
            SELECT O.P_ID, O.P_SIZE, O.COLOR
            FROM ORDER_TABLE O
            LEFT JOIN T_CODE C ON O.STATUS = C.CODE AND C.KIND = 'STATUS'
            WHERE C.NAME = '환불'
            ) A ON A.P_ID = M.P_ID AND A.P_SIZE = M.P_SIZE AND A.COLOR = M.COLOR;

 

반응형

'Database' 카테고리의 다른 글

[오라클DB] CASE & DECODE  (1) 2023.03.27
[오라클DB] SQL 쿼리 연습문제  (0) 2023.03.27
[MySQL] 로그인하기 - DB & 자바 연결  (0) 2023.03.23
[오라클DB] 문자 함수  (0) 2023.03.23
[오라클DB] 연습문제3  (0) 2023.03.22