데이터 중에서 현재 날짜에 가장 가까운 1개의 행값만 출력 0 3 1,439

by Taems [CUBRID] CUBRID [2022.05.25 13:49:19]


오늘 날짜 기준으로 STATUS가 1 또는 2인 데이터 중에서 현재 날짜에 가장 가까운 1개의 행값만 나오게 짜려고 하는데요.

예) 현재 날짜 200220525일 경우 아래와 같이 현재 날짜와 같거나 데이터 중 현재 날짜와 가장 가까운 DATE의 값으로

결과가 나오게 하려고 합니다. 아래 처럼 할 경우 20220531일 데이터가 먼저 나오고 있습니다. 조언 부탁드리겠습니다~^^

    SELECT 
        N_DATE, STATUS
    FROM 
        TEST_TABLE 
    WHERE 
        STATUS IN ('1','2') 
        AND TO_CHAR(SYSDATE, 'yyyymmdd') <= N_DATE
    LIMIT 1 

===얻고 싶은 결과 값===

   DATE STATUS
20220525     1

 

=== 현재 데이터 ===

   DATE STATUS
20220531     1
20220530     3
20220528     1
20220527     3
20220526     1
20220525     1
20220524     2

 

by Taems [2022.05.25 14:18:53]

 아래 처럼하면 되는거 같은데 다른 문제점은 없을까요???

SELECT 
        N_DATE, STATUS
    FROM 
        TEST_TABLE 
    WHERE 
        STATUS IN ('1','2') 
        AND TO_CHAR(SYSDATE, 'yyyymmdd') <= N_DATE
    ORDER BY N_DATE
    LIMIT 1


by 마농 [2022.05.25 14:29:33]

네 정렬 추가해 주시면 됩니다.
혹시 날짜가 중복 가능하진 않은지 확인해 보세요.
중복 없다면 그대로 사용 가능하고
중복이 있다면 유니크한 결과를 도출할 수 있도록 추가 정렬 기준이 필요합니다.


by Taems [2022.05.25 14:36:56]

넵~ 마농님 감사합니다~

중복확인 해보고 있으면 유니크 적용하겠습니다~

즐거운 한주 되세요~^^

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