db2 쿼리 질문드립니다. 0 2 1,409

by fwa [SQL Query] [2023.02.10 09:15:16]


제품 코드   등급       등록일
1     ,         P  ,    2023-02-10
1     ,        R  ,    2023-02-10
1     ,        R  ,    2023-02-11

쿼리문 작성중인데요, 

제품코드로 조회시에 P가 있으면 무조건 P만 조회,

R일경우 등록일 기준 내림 차순 하여 R를 가져 오고 싶은데 제가 구현한 결과가 

제품 코드   등급       등록일
1     ,         P  ,    2023-02-10
1     ,        R  ,    2023-02-10 이렇게 나오고 있습니다. 

제가 구현한 쿼리문은 아래와 같은데 이렇게 되면 2건이 나오는건 당연한거 같은데..... ROWNUM을 더 걸어서 구현을 하면될련지..

 

SELECT 
GRD --등급
FROM 

WHERE 
GRD IN (SELECT CASE WHEN GRD ='P' THEN 'P'
                    WHEN GRD ='R' THEN SELECT A.CODE 
                                       FROM 
                                       (SELECT  CODE ,ROWNUMBER() OVER (ORDER BY DT DESC) AS ROWNUM FROM  A WHERE NO='1' AND GRD ='R' ) 
                                       A WHERE A.ROWNUM=1 )
                      ELSE '' END 
        FROM A 
)

 

by 마농 [2023.02.10 11:04:36]
SELECT *
  FROM (SELECT no, grd, dt, code
             , ROW_NUMBER() OVER(ORDER BY grd, dt DESC) rn
          FROM a
         WHERE no = 1
        ) a
 WHERE rn = 1
;

 


by fwa [2023.02.14 22:21:16]

감사합니다. 날짜만 걸어주면 된다고 생각했습니다. 

 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입