database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
ㆍOracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Oracle Q&A 23830 게시물 읽기
No. 23830
16123 에 대해서...다시 한번만..
작성자
또몰라
작성일
2005-08-26 11:50
조회수
907

select /*+ordered(x,y)*/ sik_ts, bin_no,HYK_CD2,HYK_CD3,
SKTIT_SIGN+SKTIT_TEXT SKTIT
from (
select SEHN_HIN_CD, LOT_NO, BSEI_CD,,KIJ_SEQ,
min(decode(HYK_JKN_KMK_CD,'2',HYK_JKNT)) HYK_CD2,
min(decode(HYK_JKN_KMK_CD,'3',HYK_JKNT)) HYK_CD3
from TableA
where SEHN_HIN_CD = :V1 -- 'KM73Y-9'
and LOT_NO = :V2 -- '5AK017'
and BSEI_CD = :V3 -- '8033'
group by SEHN_HIN_CD, LOT_NO,BSEI_CD,KIJ_SEQ
) x, TableB y
where x.SEHN_HIN_CD = y.SEHN_HIN_CD
and x.LOT_NO = y.LOT_NO
and x.BSEI_CD = y.BSEI_CD
and x.KIJ_SEQ = y.KIJ_SEQ;

이 글에 대한 댓글이 총 5건 있습니다.

우선 박문수님 감사드립니다. 위의 방법으로 아주 잘 움직이네요. (--)(__)

그런데..또 다른 문제가 발생하였습니다.

제가 지금 작업하는 환경하에서는...

위의 SQL문을 사용할수 없다는. .....ㅡ.ㅡ

from문안에 select가 들어가서 거기에 조건식이 들어가게 되어있는데요.

제가 작업하는 환경에서는 그게 사용을...못한다는...슬픈 소식입니다.

검색 조건식은 from문안의 select에서만 사용이 가능한데요..

from 바깥에 조건식이 들어가며...검색이...가능할까요?

아시는 분들의 도움 구합니다...

 

 

또몰라님이 2005-08-26 11:53에 작성한 댓글입니다.
이 댓글은 2005-08-26 13:11에 마지막으로 수정되었습니다. Edit

/* 답변이 늦어 죄송합니다.

    인라인뷰 안에 검색조건을 입력할수 없는 상황이라는 거네요...

    방법은 찾아보면 있겠지만 옵티마이저 제어가 안되기

    때문에 심각한 속도나 불필요한 IO을 발생할수 있으니

    어떤 상황인지는 모르지만 인라인뷰로도 검색할수 있었으면 합니다. 일단 님의 말씀대로 인라인뷰로 하지 않고 단일로 만들었습니다.

테스트 환경을 만들수 없어서 실행은 못해보고 그냥 작성하였으니

테스트 해보시고 에러나 문제가 발생하면 알려주세요.

*/

select sik_ts, bin_no,

      max(decode(a.HYK_JKN_KMK_CD,'2',HYK_JKNT)) HYK_CD2,
      max(decode(a.HYK_JKN_KMK_CD,'3',HYK_JKNT)) HYK_CD3,
      max(B.SKTIT_SIGN+SKTIT_TEXT) SKTIT
 from TableA a, TableB b
 where a.SEHN_HIN_CD = b.SEHN_HIN_CD
 and  a.LOT_NO = b.LOT_NO
 and  a.BSEI_CD = b.BSEI_CD
 and  a.KIJ_SEQ = b.KIJ_SEQ
 and  a.SEHN_HIN_CD = :V1        -- 'KM73Y-9'
 and  a.LOT_NO = :V2                -- '5AK017'
 and  a.BSEI_CD = :V3                -- '8033'

 group by sik_ts, bin_no,

박문수님이 2005-08-26 16:04에 작성한 댓글입니다.
이 댓글은 2005-08-26 16:05에 마지막으로 수정되었습니다. Edit

우선...도중에 컬럼명으로 에러가 발생해서 아래처럼 고쳤는데요.

select
    KEKA.SIK_TS,
    KEKA.BIN_NO,
    max(decode(HYK.HYK_JKN_KMK_CD,'0002',HYK_JKN_T)) HYK_CD2,
    max(decode(HYK.HYK_JKN_KMK_CD,'0003',HYK_JKN_T)) HYK_CD3,
    max(CONCAT(DECODE(KEKA.SKTIT_SIGN, '+', ''), KEKA.SKTIT_TEXT)) SKT
 from

     IT_KIJ_SIK_HYK HYK, IT_KIJ_SIK_KEKA KEKA
 where

    HYK.SEHN_HIN_CD = KEKA.SEHN_HIN_CD
 and  HYK.LOT_NO = KEKA.LOT_NO
 and  HYK.BSEI_CD = KEKA.BSEI_CD
 and  HYK.KIJ_SEQ = KEKA.KIJ_SEQ
 and  HYK.SEHN_HIN_CD = 'KM73Y-9'
 and  HYK.LOT_NO = '5AK017'
 and  HYK.BSEI_CD = '8033'
 group by 1,2
이렇게 하고 나니..ORA-00979: GROUP BY식이 아닙니다 라는 에러가 발생하네요.

죄송하지만...한번 더.....부탁드리겠습니다.

또몰라님이 2005-08-26 16:39에 작성한 댓글입니다. Edit

님께서 하신 부분중에 마지막 group by 1,2라는 부분은

order by 처럼 컬럼의 index를 말하지 않고 그대로 숫자로 인식을 합니다. 그래서 1,2를 컬럼으로 변경해 주세요.

그리고 문제가 되었던 부분은 아무래도

제가 작성한  group by sik_ts, bin_no,

에서 마지막 ,(이제 보이네요) 를 빼야 할것 같구요.

그리고 bin_no 가 TableA, TableB 양쪽에 존재하기 때문에

group by a.sik_ts,a.bin_no 처럼 컬럼앞에 스키마를

지정해 주어야 할것 같습니다.

다시 한번 해보세요...

박문수님이 2005-08-26 17:27에 작성한 댓글입니다.
이 댓글은 2005-08-26 20:09에 마지막으로 수정되었습니다. Edit

감사합니다.

덕분에 해결했습니다.

이번에 맡게된 부분은...아마 님의 도움 아니었으면...못 해냈을 거라는...

ㅡ.ㅡ

감사합니다.

답글이 늦었는데 보실런지...

또몰라님이 2005-08-29 13:56에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
23833[질문]oracle 10g에서 웹서버 삭제
와타나베
2005-08-26
684
23832partition 된 테이블의 index 를 rebuild 하려는데 애러나요. [1]
서지수
2005-08-26
4538
23831DBA권한 설정?
sky
2005-08-26
1248
2383016123 에 대해서...다시 한번만.. [5]
또몰라
2005-08-26
907
23829루프 범위를 지정할 쿼리 질문 [6]
ZEROS
2005-08-26
1806
23828DB 동기화.. [5]
질문있어용^^
2005-08-26
2736
23827import할때 에러가.... [1]
이수호
2005-08-26
1853
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.022초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다