본문 바로가기
프로그래머스/[프로그래머스 - ORACLE] Lv.1

[프로그래머스 - ORACLE] 자동차 대여 기록에서 장기/단기 대여 구분하기

by 코딩하는 흰둥이 2023. 3. 20.
반응형


CREATE 문
CREATE TABLE CAR_RENTAL_COMPANY_RENTAL_HISTORY   (
HISTORY_ID	INTEGER	,
CAR_ID	INTEGER	,
START_DATE	DATE	,
END_DATE	DATE	
);


INSERT INTO CAR_RENTAL_COMPANY values(1,4,to_date('2022-09-27', 'YYYY-MM-DD'),to_date('2022-11-27','YYYY-MM-DD'))
INSERT INTO CAR_RENTAL_COMPANY values(2,3,to_date('2022-10-3', 'YYYY-MM-DD'),to_date('2022-11-04','YYYY-MM-DD'))
INSERT INTO CAR_RENTAL_COMPANY values(3,2,to_date('2022-09-1', 'YYYY-MM-DD'),to_date('2022-09-30','YYYY-MM-DD'))

  • 내 풀이
SELECT 
	HISTORY_ID , 
	CAR_ID,
	TO_CHAR(START_DATE , 'YYYY-MM-DD') AS START_DATE, 
	TO_CHAR(END_DATE , 'YYYY-MM-DD') AS END_DATE  ,
	CASE 
		WHEN END_DATE - START_DATE+1 >= 30 THEN '장기 대여'
		WHEN END_DATE - START_DATE+1 < 30 THEN '단기 대여'
	END AS RENT_TYPE
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY 
WHERE  TO_CHAR(START_DATE , 'YYYY-MM-DD') LIKE '2022-09%'
ORDER BY HISTORY_ID DESC;
  1. 예시의 데이트 포맷과 동일 해야하기 때문에 TO_CHAR로 변환
  2. 장기대여, 단기대여 로 입력하면 안된다 -> 장기 대여 , 단기 대여 처럼 띄어쓰기가 있어야 함

댓글