>>> 쿼리
SELECT a.*, rownum as rn
FROM (SELECT e.e_id, e.code, e.g_id, m.real_id
,CASE WHEN m.id_type='A' THEN m.names END AS m.e_name
,CASE WHEN m.id_type='B' THEN m.names END AS m.m_name
FROM table1 e
LEFT OUTER JOIN table2 m
ON (e.e_id = m.g_id)
WHERE 1=1
AND e_id = 'test'
AND start_dt >= '20150401'
AND end_dt <= '20150430'
GROUP BY
e.e_id, e.code, e.g_id, m.real_id, m.e_name, m.m_name
ORDER BY lower(e.e_id), lower(e.g_id)
) a
>>> 오류내용
1. 'FROM 키워드가 필요한 위치에 없습니다' (대략 3행쯤)
2. e_name, m_name 컬럼명 앞에 붙인 별명 'm' 이 문제인가 싶어
위치별로 하나씩 지워보았으나, 이런 경우 두 컬럼을 틀린 식별자로 인식
안녕하세요. 오라클 쌩초짜가 하다하다 막혀서 조심스레 질문드려봅니다... ㅜㅜ;
배경설명을 드리자면, table1, table2 두 테이블을 위의 on 구문 조건대로 조인하고,
table2 에 있는 names 컬럼을 id_type 에 따라 분류하여 두 개의 새로운 컬럼
e_name, m_name 을 생성하고자 합니다.
문제는
CASE WHEN 구문을 포함하는 내부 select 문을 따로 추려서 쿼리를 날리면
결과가 제대로 나옵니다. (나온다고 믿고 싶습니다 ㅜㅜ;;)
그런데 저 쿼리에 구문을 삽입하면 위에 써놓은대로 오류가 나네요..
CASE WHEN 부분을 없애면 그런대로 조회가 되는걸 보면
CASE WHEN 부분이랑 열 지정 문제인 것 같은데 죙일 씨름해도 도통 감을 못잡겠네요..
고수분들의 조언과 고견을 조심스럽고 간절하게 청해봅니다.