안녕하세요.
2개의 테이블이 있는데, 프로시저문 작성이 필요해 문의합니다.
테이블 정보는 아래와 같습니다.
테이블은 T1, T2가 있으며, T1 테이블이 독립테이블이며, T2 테이블은 T1 테이블이 있어야만 존재할 수 있는 테이블이며 T1 테이블에 종속적인 테이블입니다.
각 테이블의 컬럼은 다음과 같습니다.
Table T1 : ST_NO, B_TTLNO, B_NO
Table T2 : ST_NO, B_NO, D_TTLNO, D_SPAGE, D_EPAGE, D_IMAGES
이 두 테이블을 아래와 같이 JOIN 했습니다. 여기서 두 테이블을 연결할 수 있는 컬럼은 ST_NO, B_NO 입니다.
이 두 컬럼은 두 테이블에 모두 존재합니다.
SELECT A.ST_NO, A.B_TTLNO, A.B_NO, B.D_TTLNO, B.B_NO, B.D_SPAGE, B.D_EPAGE, B.D_IMAGES FROM T1 AS A, T2 AS B
WHERE A.ST_NO = B.ST_NO AND A.B_NO = B.B_NO
ORDER BY A.ST_NO, A.B_TTLNO * 1, B.D_TTLNO * 1
쿼리 결과값은 아래 사진과 같습니다.
D_SPAGE는 해당행에서 입력한 이미지의 시작페이지, D_EPAGE는 끝페이지이며, D_IMAGES는 이미지 쪽수입니다.
지금은 T2 테이블 D_IMAGES 컬럼에 쪽수만 입력된 상태입니다.
구체적으로 말씀드리면 T2 테이블의 D_SPAGE값은 T2테이블의 D_TTLNO값이 바뀌면 무조건 1부터 시작하고 다음행의 D_SPAGE값은 이전행의 D_EPAGE값에서 1을 더한 값이 됩니다.
그래서 시작페이지, 끝페이지에 일괄입력할 수 있는 프로시저문이 필요합니다.
도움을 주시면 감사하겠습니다.
Comment 2
-
이리
2021.10.05 12:02
-
lag함수에 대한 보다 자세한 설명은 아래 링크 참고하시면 좋습니다
https://minor-research.tistory.com/64
D_EPAGE는 SUM() OVER()를 사용하시고
D_SPAGE는 SUM() OVER() 한 값을 LAG() 함수를 사용하시면 원하시는 형태로 가공이 가능할것 같습니다.