2012-10-15 5 views
5

나는 괜찮은 일을하는 출석제 시스템을 구축하고 있지만 한 곳에서 붙어 있습니다. 잎사귀를 계산할 때, 금요일에 휴가를 보낸 다음 월요일에 다시 휴가를 떠나면, 토요일과 일요일 사이에있는 나뭇잎도 역시 나뭇잎으로 간주됩니다.금요일을 선택하고 월요일에 mysql에 와서

나는 쿼리에 따라 내 테이블에만 금요일과 월요일을 추출 할 수 있었다 :

SELECT * FROM `main` WHERE (DAYOFWEEK(DATE) =2 OR DAYOFWEEK(DATE) =6) 
AND emp_no =4 AND STATUS ='leave' ORDER BY DATE ASC 

그러나 나는 내가 알고있는 금요일과 다음 월요일 그래서 선택하는 방법을 모른다 그 사람은 금요일과 월요일에 휴가를 떠났다.

도움을 주시면 감사하겠습니다.

+1

당신이 당신의 더미 데이터를 게시하시기 바랍니다 수 있습니까? –

+0

테이블에 날짜, 직원 번호 및 직원 상태 필드가 있습니다. –

답변

5

이 당신에게 금요일과 다음 월요일에 걸쳐 모두 "잎"줄 것이다 : 우리가 테스트 할 수 있도록

SELECT * 
FROM main fri JOIN main mon 
    ON fri.DAYOFWEEK(DATE)=6 
    AND mon.DATE = fri.DATE + INTERVAL 3 DAY 
    AND fri.emp_no = mon.emp_no 
WHERE fri.STATUS='leave' AND mon.STATUS='leave' 
+0

하지만 금요일의 레코드 만 제공합니다. –

+1

@JewelThief : 그렇게해서는 안됩니다 ... 그러나 열 이름이 충돌하므로 클라이언트가 월요일 열에 액세스하지 못할 수 있습니다. 예 : 별칭을 지정할 수 있습니다. 'SELECT fri.emp_no, fri.DATE as friday, mon.DATE as monday FROM ... ' – eggyal

+0

고마워요 @eggyal. 너는 내 문제를 정말로 해결했다. 당신은 정확한 쿼리입니다. 나는 그것을 실행하는 데 실수를하고 있었다. –