sql 할 줄 아는 형들

조선최고육봉 작성일 14.02.23 13:19:38
댓글 5조회 4,891추천 0

 INSERT INTO A
    (
     
    )
 
  SELECT K.NAME, K.SABUN, K.ADDRESS,
    CASE
       WHEN (SELECT NVL(MAX(U.BUDAT), '00000000') FROM IF_U U WHERE U.WERKS = D.WERKS AND U.MATNR = D.MATNR AND U.CHARG = D.CHARG AND U.VBEWERTUNG = 'R' ) <> '00000000'
         THEN (SELECT VCODE FROM IF_U U WHERE U.WERKS = D.WERKS AND U.MATNR = D.MATNR AND U.CHARG = D.CHARG AND U.VBEWERTUNG = 'R'AND ROWNUM =1 )
       WHEN (SELECT NVL(MAX(T.BUDAT), '00000000') FROM IF_QT T WHERE T.WERKS = D.WERKS AND T.MATNR = D.MATNR AND T.CHARG = D.CHARG AND T.CODE = 'EA') <> '00000000'
         THEN (SELECT ZREMARK  FROM IF_Q T WHERE T.WERKS = D.WERKS AND T.MATNR = D.MATNR AND T.CHARG = D.CHARG AND T.CODE = 'EA'AND ROWNUM =1)
        ELSE '기타'
  END AS REASON,

 

형들 질문좀 할께

CASE문에서 WHEN절은 그 테이블에서 조건에 맞는 최근날짜를 체크하는데

THEN에서는 그 최근날짜로 걸린 ROW의 다른 이유 칼럼을 가져올려고 함

근데 만약에 AND조건의 ROW가 여러개 있으면 최근 날짜의 이유를 가져오면 되는데 THEN에서는 ORDER BY BUDAT

DESC가 안먹네 -_-;; BUDAT는 날짜임 임시로 ROWNUM했는데 이건 아닌것 같아서 도움 좀 줘요~139312917615679.jpg

 

좀 알려주세요..

조선최고육봉의 최근 게시물

자유·수다 인기 게시글