안녕하세요 개발을 한지 얼마 안되는 초보 인데요...
다른분이 기존에 있던 쿼리를 주로 사용해서 사이트를 개발중인데요...
쿼리를 거의 해보지를 안아서 그런지 힘듭니다 ㅜㅜ
전에는 인덱스? 그런개념없이 했다가 실제 적용했을때 조회 시간이 엄청걸려서 수정했던적도있고요 흑,....
테이블이 AA, BB, CC 3가지가 있고요
AA에는 AUTH_NO, STAT 있고요
BB에는 SEQ_NO, AUTH_NO, STRT_DATE, END_DATE, QTY
CC에는 SEQ_NO, QTY 이렇게 있습니다.
AA와 BB는 AUTH_NO로, BB와 CC는 SEQ_NO로 연결되 있는데 CC는 없을 수 도 있고요
AA의 STAT가 01,02,03,04 이렇게 있는데
STAT가 04일 경우랑
03이면서 ( BB의 END_DATE 가 SYSDATE보다 작거나 CC의 QTY(없으면BB의 QTY) 가 0인경우)
이렇게 조건을 주고싶은데요
SELECT *
FROM AA A
, BB B
, CC C
WHERE A.AUTH_NO = B.AUTH_NO
AND B.SEQ_NO = C.SEQ_NO(+)
AND ( A. STAT = '04'
OR ( A.STAT = '03'
AND ( BB.END_DATE < TO_CHAR(SYSDATE,'YYYYMMDD')
OR ( NVL(CC.QTY, BB.QTY) == 0 )
)
)
)
요런 식인데.. 제가 쿼리문을 잘 해보질 안아서 먼가 어수선하고 그냥 자바 코딩을 한것 같다는 생각도 들고요..
보통 이런경우 조건문을 어떻게 써주시나요.....
|