쿼리 좀 도와주세요. ^^; 0 12 1,558

by 깡냉E [SQL Query] [2013.01.24 10:25:42]


query_Q.JPG (19,285Bytes)


바로 전 페이지에서 받아오는 파라미터는 REC_NO = 2738 입니다.

하나의 쿼리로 제가 원하는 값은..

INITIATOR : 32397
RECEIVER : 41504
AFTER_RECEIVER : 31129

위와 같습니다.

머리 속으로는 대충 감이 떠오르다가도,

막상 짜려고 하면.. 힘드네요;;

고수님들, 부탁 좀 드리겠습니다.
by 부쉬맨 [2013.01.24 10:41:30]
select * from 테이블 where rec_no = 파라미터

by 깡냉E [2013.01.24 10:44:20]

부쉬맨 // -_-;

by 깡냉E [2013.01.24 10:57:43]

현재 까지 제가 짠 쿼리는 다음과 같습니다.

 SELECT a.*,
(SELECT b.receiver
FROM TABLE_B b
WHERE b.doc_id = a.doc_id
AND b.doc_no = a.doc_no
AND b.route_seri = 'F1-2'
) as after_receiver
FROM TABLE_A a
WHERE a.rec_no = '2738'

a.route_seri 컬럼의 F1-1 값의 - 다음 부분을 2로 증가시키는 부분만 추가해주면 될 것 같습니다.

문자열 조합을 활용해야 할 거 같은데, 조언 좀 부탁드립니다.


by 부쉬맨 [2013.01.24 11:00:27]
이해가안된다..ㅠㅠ

by 깡냉E [2013.01.24 11:03:18]

부쉬맨 // 우선 REC_NO가 2738인 모든 컬럼 값을 가져와야 하구요.

거기다가 더해서 REC_NO가 2739인 컬럼 중에 RECEIVER 컬럼만 붙여서 가져오고 싶은 거에요;;

by 부쉬맨 [2013.01.24 11:18:41]
SELECT 
  a.*, b.receiver
 FROM TABLE_A a, TABLE_B b
WHERE a.doc_id = b.doc_id
 AND a.doc_no = b.doc_no
 and a.rec_no = '2738'
 and b.route_seri = 'F1-2'

이렇게하면되는건가???

by 깡냉E [2013.01.24 13:06:38]

부쉬맨 // 네, 맞습니다;;

마지막 조건에서 F1-2는 그냥 박는 게 아니라,

a.route_seri 값인 F1-1에서 - 뒤의 숫자 1을 2로 증가시킨 값을 넣어줘야 하는데..

그 부분 문자열 치환은 어떻게 해야 할까요? ^^;

by 이재현 [2013.01.24 13:14:26]

route_seri 값을 마스터성으로 알수 있나요???

by 이재현 [2013.01.24 13:14:34]

route_seri 값을 마스터성으로 알수 있나요???

by 부쉬맨 [2013.01.24 13:20:47]
이걸원하시는거같은데.. decode(substr(b.route_seri,4,1) = '1','2','1')

by 부쉬맨 [2013.01.24 13:21:52]
좀더 제대로하신다면 이게맞을뜻 substr(b.route_seri,1,3)||decode(substr(b.route_seri,4,1) = '1','2','1')

by 깡냉E [2013.01.24 13:30:43]
 해결했습니다. ^^;

SELECT a.*,
(SELECT b.receiver
FROM TABLE_B b
WHERE b.doc_id = a.doc_id
AND b.doc_no = a.doc_no
AND b.route_seri = (select substr(a.route_seri, 1, instr(a.route_seri, '-') - 1) || '-' || TO_NUMBER(substr(a.route_seri, instr(a.route_seri, '-') + 1) + 1) from dual)
) as after_receiver
FROM TABLE_A a
WHERE a.rec_no = '2738'
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입