아하
  • 토픽

  • 스파링

  • 잉크

  • 미션


대담한황로142

대담한황로142

고수님들 쿼리 질문 드리겠습니다.

이름 날짜
김하나 2019-04-01
이둘 2019-05-02
최세 2019-03-02
이넷 2019-01-01
----------------------------------------------------------------------

결과

이름 순위 날짜 일수
이넷 1 2019-01-01 124일
김하나 x 2019-03-02 x
최세 x 2019-04-01 x
이둘 x 2019-05-02 x

-----------------------------------------------------------------

[20190504]오늘 날짜기준 위에 컬럼의날짜가 3개월이상되는것을 찾아 우선순위를 표시하고 싶습니다 3개월이하인것도 우선 순위를 표기하고요 3개월이상인거 큰순으로 하고 3개월이하는 순위x 일수x 표현하고 싶습니다

    1개의 답변이 있어요!

    • 얄쌍한재규어4

      얄쌍한재규어4

      WITH T AS (

      SELECT '김하나' NM , TO_DATE('2019-04-01','YYYY-MM-DD') DT FROM DUAL UNION ALL

      SELECT '이둘' , TO_DATE('2018-09-02','YYYY-MM-DD') FROM DUAL UNION ALL

      SELECT '최세' , TO_DATE('2018-09-02','YYYY-MM-DD') FROM DUAL UNION ALL

      SELECT '이넷' , TO_DATE('2018-09-01','YYYY-MM-DD') FROM DUAL UNION ALL

      SELECT '테스트' , TO_DATE('2018-09-14','YYYY-MM-DD') FROM DUAL

      )

      SELECT NM

      , CASE WHEN ADD_MONTHS(SYSDATE,-3) - DT > 0 THEN TO_CHAR(ROW_NUMBER() OVER(ORDER BY DT))

      ELSE 'X' END RN

      , DT

      , CASE WHEN ADD_MONTHS(SYSDATE,-3) - DT > 0 THEN TO_CHAR(TRUNC(SYSDATE) - DT + 1)||'일'

      ELSE 'X' END DAY_CNT

      FROM T

      ORDER BY RN