음 그러면 아래처럼과도 같이 가능할수도 있을까요.?
SELECT case SELECT case end end from
멀티는 안되는군요...ㅠㅠ
답변 고맙습니다.
주문테이블 전체를 읽어 회원번호로 그룹바이 한뒤
Case 문으로 11월 주문을 확인하여 점수를 부여합니다.
이방식은 대량의 전체 주문테이블을 다 읽어야 하므로 성능이 좋지 않을 것으로 예상되네요.
SELECT id , NVL(MAX(CASE WHEN OrderDt LIKE '201511%' THEN 1 END), 0) jumsu FROM Ordertable GROUP BY id ;
다음 방식은
회원테이블을 읽어 서브쿼리로 주문테이블을 체크하는 방식입니다.
주문테이블에 (회원번호 + 주문일자) 인덱스가 있을 경우 효과적입니다.
SELECT c.id , (SELECT NVL(MAX(1), 0) FROM Ordertable o WHERE o.id = c.id AND o.OrderDt LIKE '201511%' AND ROWNUM = 1 ) jumsu FROM CustomerTable c ;
조그 간단하게 해결했습니다.
회원만 따로 모아놓은 DB 테이블이 있다고 해서
해당 DB의 회원 전체를 불러와서 union all로 합치고,
점수를 계산해서 합쳐버렸습니다.