미채택 완료

mysql 쿼리문 질문드려요..

2018-11-11 (일) 00:50:45 3,370

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

이  름  |   예약일자  

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

홍길동   2018-11-01

김길동   2018-11-01

김길동   2018-11-02

홍길동   2018-11-03

김길동   2018-11-04

홍길동   2018-11-04

김길동   2018-11-06

홍길동   2018-11-07

홍길동   2018-11-08

위와 같은 데이터가 있을때요...

(이름 name ,  예약일자는 date 라고 필드정의)

$res = sql_query ("select MAX(date) as maxday, MIN(date) as minday from member group by name ORDER BY name asc ");

이렇게 그룹바이를 써서 리스트로 뽑을려고 해요..

딱 이렇게 뽑으면 좋을려만.. 여기서 조건이 들어갑니다..

홍길동의 경우 예약일자가 2018-11-01 ~ 2018-11-08

김길동의 경우 예약일자가 2018-11-01 ~ 2018-11-06

조건절은요..

1. 시작일자가 12개월 전부터만 조회

2. 종료일자가 종료일이 지난뒤 10일까지만 리스트에 나오게 하려 해요.. 종료하면 딱 없어지는 것이 아니라 언제 종료했다는 걸 보여줄려구요.

1번 조건을 아래와 같이 하려다가요....

$expire = date("y-m-d", strtotime(' -12 month'));

$res = sql_query ("select MAX(date) as maxday, MIN(date) as minday where date > $expire  from member group by name ORDER BY name asc ");

이렇게 where 절은 안될것 같아서요..

어케 12개월 전부터와 어케 마지막날 + 10일을 조건 줘서 조회해야 하는게 가능한지요?

가능하다면 고수님들 좀 알려주세요.

|

답변 2개 / 댓글 2개

2018-11-11 (일) 15:50:02

$res = sql_query ("select MAX(date) as maxday, MIN(date) as minday from member where date >  DATE_ADD(now() , INTERVAL -1 YEAR) and now() >=  DATE_ADD(maxday , INTERVAL +10 DAY)  group by name ORDER BY name asc "); 

이정도면 될까요? 쿼리 실행은 해보지 않았습니다.

답변에 대한 댓글 1개

답변 감사드립니다.
maxday 값이 Null 이 되는것 같네요...ㅠㅠ
2018-11-11 (일) 09:59:56

$res = sql_query ("select MAX(date) as maxday, MIN(date) as minday where date >  DATE_ADD(now() , INTERVAL -1 YEAR)  from member group by name ORDER BY name asc ");

이렇게 하면 1년 전 부터 쿼리 하라는 겁니다만, 종료일이 지난 10일까지만? 이게 좀 이해가 가질 않는군요

답변에 대한 댓글 1개

답변 감사드립니다.

where 마지막날짜 > (오늘날짜 - 12개월) and (마지막날짜 + 10일) <= 오늘날짜

답변을 작성하려면 로그인이 필요합니다.