쿼리 수행시 seq의 최종 값만 가져오고 싶습니다. 0 3 549

by fwa [Oracle 기초] [2021.05.10 20:41:41]



해당 쿼리를 작성하여 수행하였는데요.

최종 seq의 마지막 로우만 가져오고 싶은데,  잘 구현이 되지 않습니다.

작성한 쿼리 첨부 합니다. 

결과 값에서 2번째 로우와 3번째 로우중 세번째 로우가의 seq가 높기에

세번째 로우의 값을 나태내고 싶은데, 2번째와 세번째 모두 표출 됩니다. ㅠ.ㅠ 

SELECT

DISTINCT A.TYPE_ACD ,
         A.TYPE_CD,
         (SELECT DISTINCT A.SMALL_NM FROM TABLE_C , TABLE_A
         WHERE C.TYPE_CD =A.TYPE_CD
         AND A.TYPE_CD ='1101'
         AND A. USE_YN ='Y'
         AND A. CHTMS=(SELECT MAX(CHTMS) AS CHTMS FROM TABLE_C WHERE A.TYPE_CD ='1101')
         ) TYPE_ANM
         A.SEQ,
         A.ITM_SEQ,
         B.TYPE_NM,
         B.TYPE_DTL,
         A.DISPLAY_ORD
FROM TABLE_A  , TABLE_B 
WHERE
A.TYPE_CD = B.TYPE_CD
AND TYPE_A ='1101'
AND B.LST_YN ='Y'
ORDER BY A.DISPLAY_ORD

------------ 

 

by 마농 [2021.05.11 09:22:44]

쿼리에 Distinct 가 많이 사용되네요?
Distinct 가 왜 사용되었을까요?
보통 조인조건 누락 등, 잘못 작성된 쿼리에서 많이 사용됩니다.
1건 만 뽑는 쿼리를 작성하기 전에
우선 잘못 작성된 부분부터 바로잡아야 할 것입니다.
지금 올려주신 쿼리는 조건 등이 이상하기도 하지만
문법적으로도 돌아가지 않는 오류 쿼리입니다.
정상적인 쿼리를 올려 주세요.

일단. 1건만 뽑는 쿼리는 ROW_NUMBER 를 이용하면 됩니다.


by fwa [2021.05.11 14:04:37]

쿼리 수정 하였습니다... 

답변 감사 합니다!


by 마농 [2021.05.11 14:35:51]

사용된 쿼리를 보면
스칼라서브쿼리 부분에 대한 작성방법이 잘못된 듯 합니다.
보통 메인 테이블과 서브 테이블과의 연관 조건이 있어야 하는데
연관 조건 없이 단독으로 돌아가는 서브쿼리 형태로 작성되어 있네요.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입