구매목록에서 중복 제거를 하면서 업데이트 시킬려면 어떻게해야하나요 ? 0 2 485

by 왕오데초 [SQL Developer] orcle SQL DB [2021.11.14 12:15:45]



CREATE TABLE MEMBER (
	MEMBER_NO	    NUMBER ,
	MEMBER_POINT   NUMBER ,
);

CREATE SEQUENCE MEMBER_SEQ;

 CREATE TABLE COURSE(
   COURSE_NO NUMBER,
   MEMBER_NO NUMBER,
   COURSE_PRICE NUMBER,
);

CREATE SEQUENCE COURSE_SEQ;

INSERT INTO MEMBER(
    MEMBER_SEQ.NEXTVAL,
   50000                                     //MEMBER_POINT 에 50000원 추가
);

INSERT INTO COURSE(
    COURSE_SEQ.NEXTVAL,
    6,                                            //MEMBER_NO
    10000                                     //COURSE_PRICE 에 10000원추가
);

UPDATE MEMBER
SET MEMBER_POINT   = MEMBER_POINT   - (SELECT SUM(COURSE_PRICE )
FROM COURSE
WHERE ICOURSE.MEMBER_NO = IC_MEMBER.MEMBER_NO)
WHERE MEMBER_NO=6;

MEMBER_POINT에 50000원을 넣고 COURSE_PRICE에 10000원을 넣은 후 
UPDATE를 실행시키면 40000원이 남는데 한번 더 COURSE 테이블에 INSERT를 
한 뒤 다시 UPDATE를 실행시키면은 20000원이 남는데 30000원이 남게 하고싶은데 어떻게 해야할까요 

여러방법 해봤는데 안되네요 

 

 

by 마농 [2021.11.15 09:18:20]

1. 오류 원인 및 해결 방안
- 오류 : 전체 SUM 을 차감
- 수정 : 입력 금액만 차감하도록
2. 수정 쿼리
- 변경전 : member_point - (SELECT SUM(course_price) FROM course WHERE course.member_no = member.member_no)
- 변경후 : member_point - 10000
 3. 개선 방안
- 트리거 검토


by 왕오데초 [2021.11.15 10:08:45]

감사합니다 !!!! 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입