Mysql 토요일에 특정 값 변경 0 2 512

by inst9 [SQL Query] Mysql SQL Query [2021.04.07 18:12:03]


안녕하세요. SQL query를 변경중인데 너무 어려워서 질문 드립니다.
지금 변경하고 있는 SQL은 출퇴근 관련 table이구요 

해당 테이블에 day_type 정도의 컬럼 정해서 평일에 출근하면 Null 값이 들어가고 휴가는FULL 이런식으로 데이터가 들어가는데요,

토요일이나 일요일에 출근할때도 계속 Null이 들어가서 쿼리를 조회 해보면 주말 출근임에도 평일 이라고 나오더라구요

혹시 주말 출근때 day_type 컬럼에 Weekend라는 특정 값이 들어가게 하는 방법이 있을까요?
도움 부탁드립니다.

by 뉴비디비 [2021.04.08 01:19:28]

DAYOFWEEK(날짜) 로 요일 체크 조건을 추가하면 될꺼같아요. 아래는 요일 확인 참고쿼리 입니다. 

WITH RECURSIVE DailyTbl AS (
	SELECT 1             AS lv UNION ALL
	SELECT 1+DailyTbl.lv AS lv FROM DailyTbl WHERE DailyTbl.lv < 15
)
SELECT 
	listdate + INTERVAL lv-1 DAY "날짜"
	, CASE 
		WHEN DAYOFWEEK( listdate + INTERVAL lv-1 DAY ) = 1 THEN '일요일'
		WHEN DAYOFWEEK( listdate + INTERVAL lv-1 DAY ) = 2 THEN '월요일'
		WHEN DAYOFWEEK( listdate + INTERVAL lv-1 DAY ) = 3 THEN '화요일'
		WHEN DAYOFWEEK( listdate + INTERVAL lv-1 DAY ) = 4 THEN '수요일'
		WHEN DAYOFWEEK( listdate + INTERVAL lv-1 DAY ) = 5 THEN '목요일'
		WHEN DAYOFWEEK( listdate + INTERVAL lv-1 DAY ) = 6 THEN '금요일'
		WHEN DAYOFWEEK( listdate + INTERVAL lv-1 DAY ) = 7 THEN '토요일'
	  END AS "요일"
	, CASE 
		WHEN DAYOFWEEK( listdate + INTERVAL lv-1 DAY ) IN (1,7) THEN 'Weekend'
		ELSE ''
	  END AS "주말여부"
FROM (
	SELECT lv , '20210401' listdate FROM DailyTbl
) DOWList;

 


by inst9 [2021.04.08 22:51:37]

정말 감사합니다!!!

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