안녕하세요 query에 약한 오라클dba 입니다. 업무단에서 요청온 내용이 있는데 query에 약해서 고수분들께 문의드립니다 ㅠ


SELECT 로 조회된 결과들이 있다고 가정했을 때.. 예를 들어


SELECT DATE, NAME, TITLE, APPR_ROLE

FROM DOC

WHERE DOC_ID='문서번호'


이런식으로 특정 문서 ID를 조건으로 기안자, 중간 결재자(들), 최종 결재자를 받아오는 SELECT 문이 있습니다.


이때 APPR_ROLE에 따라 예를들어


APPR_ROLE = 1 이면 기안자

APPR_ROLE = 2 이면 중간결재자

APPR_ROLE = 3 이면 최종결재자


이런식으로 구분을 하고 있습니다.


이때 출력된 결과들을 임시테이블에 입력을 해야하는데 하나의 ROW에 들어가게끔 해야합니다.


결재문서에 따라 중간 결재자의 수가 변하기 때문에 임시 테이블의 컬럼들은 넉넉하게 잡아 두었습니다.

테이블 구성은 다음과 같습니다.


APPR_USER.IMSI_APPROVAL


DRAFT_DATE DATE,

DRAFTER_NAME VARCHAR2(50),

TITLE VARCHAR2(50),

END_APPR_NAME VARCHAR2(15), --최종결재자

END_APPR_DATE DATE,  --결재일자        

MIDDLE_APPR_NAME_0 VARCHAR2(15) -- 중간결재자0

MIDDLE_APPR_DATE_0 DATE, --결재일자0

MIDDLE_APPR_NAME_1 VARCHAR2(15) -- 중간결재자1

MIDDLE_APPR_DATE_0 DATE, -- 결재일자1

MIDDLE_APPR_NAME_2 VARCHAR2(15) -- 중간결재자2

MIDDLE_APPR_DATE_0 DATE, -- 결재일자2

.

.

.



위와 같은 임시테이블에 데이터를 넣고 싶은데.. 한 ROW에 들어가게 해야합니다 ㅠ


APPR_ROLE 이 2인 인원들이 최소 1명에서 최대 10명정도까지 되기 때문에 

예를들어 APPR_ROLE=2 인 인원들 즉 중간결재자들이 3명이라고 쳤을 때 데이터는


MIDDLE_APPR_NAME_0, MIDDLE_APPR_DATE_0, 

MIDDLE_APPR_NAME_1, MIDDLE_APPR_DATE_1,

MIDDLE_APPR_NAME_2, MIDDLE_APPR_DATE_2


한개의 ROW 총 6개의 컬럼에 값이 들어가야합니다.


그래서 아래와 같이 오라클의 INSERT + WHEN 구문을 이용해서 넣어볼려고 하는데 어떻게 하면 한 row에 들어가게해야하는지

잘 모르겠네요 ㅠ 



INSERT FIRST(ALL) 

WHEN APPR_ROLE=1 THEN

INTO APPR_USER.IMSI_APPROVAL (컬럼값) VALUES (컬럼값)

WHEN APPR_ROLE=2 THEN

INTO APPR_USER.IMSI_APPROVAL (컬럼값) VALUES (컬럼값)

..

..

..

SELECT DATE, NAME, TITLE, APPR_ROLE

FROM DOC

WHERE DOC_ID='문서번호' 

;


회사 개발자분들한테 물어보자니 눈치도 좀 보이구해서 여쭤봅니다 ㅠ





No. Subject Author Date Views
Notice SQL강좌: 챗GPT와 함께 배우는 SQL Server 무료 강좌 목차와 소개 (2023년 9월 업데이트) 코난(김대우) 2023.08.18 31526
Notice Python 무료 강좌 - 기초, 중급, 머신러닝(2023년 6월 업데이트) 코난(김대우) 2021.01.01 16319
7502 SQL 2012 Login 감사 설정 관련 질문 [1] catchv 2014.01.10 3088
7501 Count(*) 를 대체하는 방법을 어떤 쁠로그에서 봤는데요 질문드립니다. [1] 김락중_278785 2014.01.10 4399
7500 소켓관련 [1] 알토란 2014.01.09 2809
7499 속도가 너무 느려서 그런데요 . 쿼리 좀 봐주시고 조언 부탁드립니다. [4] ssunsori 2014.01.09 3492
7498 안녕하세요. 공백 기준으로 문자열 자르기? [1] 수가리 2014.01.09 5823
7497 join 속도 관련 문의 입니다. [1] ssunsori 2014.01.08 3059
7496 서비스팩 업데이트 문의 [2] 윤태형 2014.01.08 2872
7495 매년 주간 날짜 값을 구해야 합니다. [2] Larry 2014.01.08 7277
» SELECT 로 조회된 결과를 한 row에 insert 하는 방법 없을까요? [2] 귀여운첼시 2014.01.08 3436
7493 연결 문자열 질문입니다. 팅스호웹 2014.01.08 3238
7492 특정문자 만 출력 하고 싶은데요. [2] ssunsori 2014.01.07 3812
7491 수정))저장프로시저 실행순서를 좀 알고싶습니다.. [4] 상구 2014.01.07 3526
7490 조건에 맞는 query 문을 쓰고자 하는데 잘 몰라서요! [3] 슈토파이터 2014.01.07 3683
7489 순방문자수 관련 [3] 냥냥 2014.01.06 4110
7488 table create, drop많이하면 alima 2014.01.06 3371
7487 SQL 테이블 지우고 옮겨도 상관없을까요? [3] 로로스 2014.01.06 3106
7486 SQL SERVER 그룹 추가 질문 [1] wassup 2014.01.06 3385
7485 SQL 2008 R2 설치관련 [2] HSQL 2014.01.06 9402
7484 join 쿼리 좀 봐주세요. [3] ssunsori 2014.01.05 3171
7483 mssql 연동 포트 질문드립니다!! [1] 강낭콩 2014.01.04 3660





XE Login