반응형
기존 포인트 합계 VIEW 쿼리문은 다음과 같았다.
-- 총 합계 VIEW
CREATE OR REPLACE VIEW VIEW_POINT
AS
SELECT M.CODE, (NVL(R.AMOUNT, 0) + NVL(C.AMOUNT, 0) - NVL(P.AMOUNT, 0) - NVL(W.AMOUNT, 0) + NVL(CH.AMOUNT, 0)) AS POINT
FROM MEMBER M FULL OUTER JOIN VIEW_REFUND R
ON M.CODE = R.MEMBER_CODE
FULL OUTER JOIN VIEW_COMPLETE C
ON R.MEMBER_CODE = C.MEMBER_CODE
FULL OUTER JOIN VIEW_PAYMENT P
ON C.MEMBER_CODE = P.MEMBER_CODE
FULL OUTER JOIN VIEW_WITHDRAWAL W
ON P.MEMBER_CODE = W.MEMBER_CODE
FULL OUTER JOIN VIEW_CHARGE CH
ON W.MEMBER_CODE = CH.MEMBER_CODE
WHERE M.CODE IS NOT NULL;
그런데 엄청난 오류가 있었다.
두 번째 JOIN 하는 과정부터 JOIN 하는 조건이 잘못됐다.
FULL OUTER JOIN VIEW_COMPLETE C
ON R.MEMBER_CODE = C.MEMBER_CODE
이렇게 R.MEMBER_CODE 를 조건으로 넣어주게 되면 REFUND (환불) 테이블에 있는
회원코드로만 연결이 된다..
따라서 아래와 같이 변경해주었다.
CREATE OR REPLACE VIEW VIEW_POINT
AS
SELECT M.CODE, (NVL(R.AMOUNT, 0) + NVL(C.AMOUNT, 0) - NVL(P.AMOUNT, 0) - NVL(W.AMOUNT, 0) + NVL(CH.AMOUNT, 0)) AS POINT
FROM MEMBER M FULL OUTER JOIN VIEW_REFUND R
ON M.CODE = R.MEMBER_CODE
FULL OUTER JOIN VIEW_COMPLETE C
ON M.CODE = C.MEMBER_CODE
FULL OUTER JOIN VIEW_PAYMENT P
ON M.CODE = P.MEMBER_CODE
FULL OUTER JOIN VIEW_WITHDRAWAL W
ON M.CODE = W.MEMBER_CODE
FULL OUTER JOIN VIEW_CHARGE CH
ON M.CODE = CH.MEMBER_CODE
WHERE M.CODE IS NOT NULL;
이렇게 VIEW 쿼리문만 변경해주니 오류가 사라졌당!
다음부턴 조심하자.
반응형
'공부 > Project' 카테고리의 다른 글
어노테이션을 사용하는 방법 vs 별도의 유효성 검사 메서드를 만드는 방법 (0) | 2024.06.20 |
---|---|
같이사자 프로젝트 다시 시좍 (0) | 2024.06.20 |
같이사자 :: 공동구매 게시물 등록 코드 완성(java 넘어온 객체 데이터 다시 넘겨주기) (0) | 2022.08.14 |
같이사자 :: 공동구매 게시물 등록 시 결제 페이지 코드 구성 (0) | 2022.08.12 |
같이사자 :: 공동구매 게시물 작성 코드 구성 (mybatis 프로시저 실행, datepicker 다른 datepicker에 의존 시) (0) | 2022.08.11 |