서브쿼리 질문 0 1 691

by 감동맨 [SQL Query] [2022.07.14 19:18:39]


SELECT A.RNUM
    , A.TOTCNT
    , A.HMGPEDIA_ID
    , A.GROUPNAME
    , A.USE_YN
    , A.LANG_CD
    , A.COUNT
    , A.THUMBNAIL_ID
    , A.UPDATE_DATE
    , B.ASSET_ID
    , B.SAVE_FILE_NAME
    , C.GRC_NAME
FROM (
    SELECT 
        CEIL ((ROW_NUMBER() OVER(ORDER BY B.UPDATE_DATE DESC)+0.00) / (15+0.00)) AS RNUM
        , COUNT(*) OVER() TOTCNT
        , B.HMGPEDIA_GP
        , B.HMGPEDIA_ID
        , B.THUMBNAIL_ID
        , B.USE_YN
        , A.LANG_CD
        , B.COUNT
        , B.UPDATE_USER
        , B.TAG_ID
        , B.GROUPNAME
        , TO_CHAR(B.UPDATE_DATE, 'YYYYMMDDHH24MISS') AS UPDATE_DATE
    FROM(
        SELECT 
            A.HMGPEDIA_ID
            , AGGR_CONCAT(LANG_CD, ',' ORDER BY LANG_CD DESC) AS LANG_CD
        FROM HMG.TB_HMGPEDIA A
        WHERE 1=1
        AND A.HMGPEDIA_GP = 1
        AND A.DEL_YN = 'N'
        AND C.GRC_NAME LIKE '%' || '위아' || '%'  
        GROUP BY A.HMGPEDIA_ID
    ) A JOIN HMG.TB_HMGPEDIA B
        ON A.HMGPEDIA_ID = B.HMGPEDIA_ID 
        AND DECODE(INSTR(A.LANG_CD, ','), 0, A.LANG_CD, SUBSTR(A.LANG_CD, 0, INSTR(A.LANG_CD, ',') - 1)) = B.LANG_CD
) A LEFT JOIN HMG.TB_ATTACH_FILE B
        ON A.THUMBNAIL_ID = B.ATTACH_ID
    LEFT JOIN HMG.TB_MGMT_GROUPCOM C
        ON A.GROUPNAME = C.CONTENTS_ID
WHERE RNUM = 1
ORDER BY A.UPDATE_DATE DESC
;

 

위 쿼리가 있는데요

중간에 AND C.GRC_NAME LIKE '%' || '위아' || '%'  

이 쿼리를 사용하고 싶은데 C라는 부분이 제일 하단부에

LEFT JOIN HMG.TB_MGMT_GROUPCOM C
        ON A.GROUPNAME = C.CONTENTS_ID

이렇게 조인이 되어 있어서 안쪽에서는 실행이 안되는거 같아요

그래서 

FROM(
        SELECT 
            A.HMGPEDIA_ID
            , AGGR_CONCAT(LANG_CD, ',' ORDER BY LANG_CD DESC) AS LANG_CD
        FROM HMG.TB_HMGPEDIA A
        WHERE 1=1
        AND A.HMGPEDIA_GP = 1
        AND A.DEL_YN = 'N'
        AND C.GRC_NAME LIKE '%' || '위아' || '%'  
        GROUP BY A.HMGPEDIA_ID

이 부분에서 FROM쪽에

FROM HMG.TB_HMGPEDIA A, HMG.TB_MGMT_GROUPCOM C

이렇게 해줬는데도...안되서 어떻게 해야할지...감이 안잡혀서

질문드립니다...

by 마농 [2022.07.14 19:51:45]

동일테이블이 두번 사용되는데 한번만 사용해도 가능할 것 같고
각 테이블의 PK 정보와 테이블간의 관계, 사용되는 컬럼들의 의미,
쿼리의 목적 등 정보가 필요합니다.

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