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했는데 이건 아닌것 같아서 도움 좀 줘요~
좀 알려주세요..