오늘 날짜 기준으로 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 |
아래 처럼하면 되는거 같은데 다른 문제점은 없을까요???
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
네 정렬 추가해 주시면 됩니다.
혹시 날짜가 중복 가능하진 않은지 확인해 보세요.
중복 없다면 그대로 사용 가능하고
중복이 있다면 유니크한 결과를 도출할 수 있도록 추가 정렬 기준이 필요합니다.
넵~ 마농님 감사합니다~
중복확인 해보고 있으면 유니크 적용하겠습니다~
즐거운 한주 되세요~^^